값
값은 식을 평가하여 생성되는 데이터입니다. 이 섹션에서는 M 언어의 값 종류에 대해 설명합니다. 각 종류의 값은 리터럴 구문, 해당 종류의 값 집합, 해당 값 집합에 정의된 연산자 집합 및 새로 생성된 값에 지정된 내장 형식과 연결됩니다.
종류 | 리터럴 |
---|---|
Null | null |
논리적인 | true false |
숫자 | 0 1 -1 1.5 2.3e-5 |
Time | #time(09,15,00) |
날짜 | #date(2013,02,26) |
DateTime | #datetime(2013,02,26, 09,15,00) |
DateTimeZone | #datetimezone(2013,02,26, 09,15,00, 09,00) |
기간 | #duration(0,1,30,0) |
Text | "hello" |
이진 | #binary("AQID") |
List | {1, 2, 3} |
녹음 | [ A = 1, B = 2 ] |
테이블 | #table({"X","Y"},{{0,1},{1,0}}) |
Function | (x) => x + 1 |
Type | type { number } type table [ A = any, B = text ] |
다음 섹션에서는 각 값 종류에 대해 자세히 설명합니다. 형식 및 형식 설명은 형식에서 공식적으로 정의됩니다. 함수 값은 Functions에 정의됩니다. 다음 섹션에서는 각 값 종류에 대해 정의된 연산자를 나열하고 예제를 제공합니다. 연산자 의미 체계의 전체 정의는 연산자에서 다음과 같습니다.
null 값은 값이 없거나 확정되지 않거나 알 수 없는 상태의 값을 나타내는 데 사용됩니다. null 값은 리터럴을 사용하여 작성됩니다 null
. 다음 연산자는 null 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x > y |
보다 큼 |
x >= y |
크거나 같음 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x = y |
같음 |
x <> y |
같지 않음 |
x ?? y |
Coalesce |
값의 네이 null
티브 형식은 내장 형식 null
입니다.
논리 값은 true 또는 false 값을 갖는 부울 작업에 사용됩니다. 논리 값은 리터럴 및 false
.를 사용하여 작성됩니다true
. 다음 연산자는 논리 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x > y |
보다 큼 |
x >= y |
크거나 같음 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x = y |
같음 |
x <> y |
같지 않음 |
x or y |
조건부 논리 OR |
x ?? y |
Coalesce |
x and y |
조건부 논리 AND |
not x |
논리 NOT |
논리 값(true
및 false
)의 네이티브 형식은 내장 형식 logical
입니다.
숫자 값은 숫자 및 산술 연산에 사용됩니다. 다음은 숫자 리터럴의 예입니다.
3.14 // Fractional number
-1.5 // Fractional number
1.0e3 // Fractional number with exponent
123 // Whole number
1e3 // Whole number with exponent
0xff // Whole number in hex (255)
숫자는 적어도 Double의 전체 자릿수로 표시됩니다(하지만 더 정밀도를 유지할 수 있음). Double 표현은 [IEEE 754-2008]에 정의된 이진 부동 소수점 산술 연산에 대한 IEEE 64비트 배정밀도 표준과 일치합니다. (다음 항목이중 표현의 대략적인 동적 범위는 5.0 x 10324 에서 1.7 x 10308 이고 전체 자릿수는 15-16자리입니다.)
다음 특수 값도 숫자 값으로 간주됩니다.
양수 0 및 음수 0입니다. 대부분의 경우 양수 0과 음수 0은 단순 값 0과 동일하게 동작하지만 특정 연산은 둘을 구분합니다.
양수 무한대(
#infinity
) 및 음수 무한대(-#infinity
). 무한대는 0이 아닌 숫자를 0으로 나누는 등의 연산에 의해 생성됩니다. 예를 들어 양1.0 / 0.0
수 무한대를 생성하고 음의-1.0 / 0.0
무한대를 생성합니다.숫자가 아닌 값(
#nan
종종 약어 NaN)입니다. NaN은 0으로 나누는 것과 같은 잘못된 부동 소수점 연산에 의해 생성됩니다.
이진 수학 연산은 정밀도를 사용하여 수행됩니다. 전체 자릿수는 피연산자를 반올림할 도메인과 작업이 수행되는 도메인을 결정합니다. 명시적으로 지정된 정밀도가 없는 경우 이러한 작업은 배정밀도를 사용하여 수행됩니다.
수학적 연산 결과가 대상 형식에 비해 너무 작으면 연산 결과는 양의 0 또는 음수 0이 됩니다.
수학 연산 결과가 대상 형식에 비해 너무 크면 연산 결과가 무한대 또는 음의 무한대 상태가 됩니다.
수학 연산이 유효하지 않으면 연산 결과가 NaN이 됩니다.
부동 소수점 연산의 피연산자 중 하나 또는 둘 다 NaN이면 작업의 결과가 NaN이 됩니다.
다음 연산자는 숫자 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x > y |
보다 큼 |
x >= y |
크거나 같음 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x = y |
같음 |
x <> y |
같지 않음 |
x + y |
Sum |
x - y |
다름 |
x * y |
Product |
x / y |
몫 |
x ?? y |
Coalesce |
+x |
단항 더하기 |
-x |
부정 |
숫자 값의 네이티브 형식은 내장 형식 number
입니다.
시간 값은 하루 중 시간의 불투명 표현을 저장합니다. 시간은 24시간 시계에 경과된 100나노초 틱의 수를 계산하는 자정 이후의 틱 수로 인코딩됩니다. 자정 이후의 최대 틱 수는 23:59:59.9999999 시간에 해당합니다.
시간에 대한 리터럴 구문은 없지만 여러 표준 라이브러리 함수를 제공하여 생성합니다. 기본 함수 #time
를 사용하여 시간을 생성할 수도 있습니다.
#time(hour, minute, second)
다음을 유지해야 하거나 이유 코드 Expression.Error
가 있는 오류가 발생합니다.
0 ≤ 시간 ≤ 24
0 ≤ 분 ≤ 59
0 ≤ 초 ≤ 59
또한 hour = 24이면 분과 초는 0이어야 합니다.
다음 연산자는 시간 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
다음 연산자는 피연산자 중 하나 또는 둘 다를 날짜로 허용합니다.
연산자 | 왼쪽 피연산자 | 오른쪽 피연산자 | 의미 |
---|---|---|---|
x + y |
time |
duration |
기간별 날짜 오프셋 |
x + y |
duration |
time |
기간별 날짜 오프셋 |
x - y |
time |
duration |
무효화된 기간별 날짜 오프셋 |
x - y |
time |
time |
날짜 사이의 기간 |
x & y |
date |
time |
병합된 날짜/시간 |
시간 값의 네이티브 형식은 내장 형식 time
입니다.
날짜 값은 특정 날짜의 불투명 표현을 저장합니다. 날짜는 0001년 1월 1일부터 그레고리오력의 일반 시대부터 Epoch 이후의 일 수로 인코딩됩니다. epoch 이후의 최대 일 수는 9999년 12월 31일에 해당하는 3652058.
날짜에 대한 리터럴 구문은 없지만 여러 표준 라이브러리 함수가 제공되어 해당 구문을 생성합니다. 기본 함수 #date
를 사용하여 날짜를 생성할 수도 있습니다.
#date(year, month, day)
다음을 유지해야 하거나 이유 코드 Expression.Error
가 있는 오류가 발생합니다.
1 ≤ 년 ≤ 9999
1 ≤ 월 ≤ 12
1일 ≤ ≤ 31
또한 선택한 월 및 연도에 대해 날짜가 유효해야 합니다.
다음 연산자는 날짜 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
다음 연산자는 피연산자 중 하나 또는 둘 다를 날짜로 허용합니다.
연산자 | 왼쪽 피연산자 | 오른쪽 피연산자 | 의미 |
---|---|---|---|
x + y |
date |
duration |
기간별 날짜 오프셋 |
x + y |
duration |
date |
기간별 날짜 오프셋 |
x - y |
date |
duration |
무효화된 기간별 날짜 오프셋 |
x - y |
date |
date |
날짜 사이의 기간 |
x & y |
date |
time |
병합된 날짜/시간 |
날짜 값의 네이티브 형식은 내장 형식 date
입니다.
datetime 값에는 날짜와 시간이 모두 포함됩니다.
datetime에 대한 리터럴 구문은 없지만 여러 표준 라이브러리 함수를 제공하여 생성합니다. 기본 함수 #datetime
를 사용하여 Datetime을 생성할 수도 있습니다.
#datetime(year, month, day, hour, minute, second)
다음이 적용되어야 하거나 이유 코드 Expression.Error를 포함하는 오류를 제기합니다. 1 ≤ 년 ≤ 9999에서 오류가 발생합니다.
1 ≤ 월 ≤ 12
1일 ≤ ≤ 31
0 ≤ 시간 ≤ 23
0 ≤ 분 ≤ 59
0 ≤ 초 ≤ 59
또한 선택한 월 및 연도에 대해 날짜가 유효해야 합니다.
다음 연산자는 datetime 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
다음 연산자는 해당 피연산자 중 하나 또는 둘 다를 datetime으로 허용합니다.
연산자 | 왼쪽 피연산자 | 오른쪽 피연산자 | 의미 |
---|---|---|---|
x + y |
datetime |
duration |
기간별 날짜/시간 오프셋 |
x + y |
duration |
datetime |
기간별 날짜/시간 오프셋 |
x - y |
datetime |
duration |
무효화된 기간별 날짜/시간 오프셋 |
x - y |
datetime |
datetime |
날짜/시간 사이의 기간 |
datetime 값의 네이티브 형식은 내장 형식 datetime
입니다.
datetimezone 값에는 datetime 및 표준 시간대가 포함됩니다. 표준 시간대는 UTC에서 오프셋된 시간(분)으로 인코딩됩니다. 이는 날짜/시간의 시간 부분이 UTC(Universal Coordinated Time)에서 오프셋되어야 하는 시간(분)을 계산합니다. UTC의 최소 시간 오프셋 수는 -840이며 UTC 오프셋 -14:00 또는 UTC보다 14시간 이전을 나타냅니다. UTC의 최대 분 오프셋 수는 840이며 UTC 오프셋 14:00에 해당합니다.
datetimezones에 대한 리터럴 구문은 없지만 여러 표준 라이브러리 함수를 제공하여 생성합니다. Datetimezones는 내장 함수 #datetimezone
를 사용하여 생성될 수도 있습니다.
#datetimezone(
year, month, day,
hour, minute, second,
offset-hours, offset-minutes)
다음을 유지해야 하거나 이유 코드 Expression.Error
가 있는 오류가 발생합니다.
1 ≤ 년 ≤ 9999
1 ≤ 월 ≤ 12
1일 ≤ ≤ 31
0 ≤ 시간 ≤ 23
0 ≤ 분 ≤ 59
0 ≤ 초 ≤ 59
-14 ≤ 오프셋 시간 ≤ 14
-59 ≤ 오프셋 분 ≤ 59
또한 날짜는 선택한 월 및 연도에 대해 유효해야 하고, 오프셋 시간 = 14이면 오프셋 분 <= 0이고, 오프셋 시간 = -14이면 오프셋 분 >= 0입니다.
datetimezone 값에 대해 정의된 연산자는 다음과 같습니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
다음 연산자는 해당 피연산자 중 하나 또는 둘 다를 datetimezone으로 허용합니다.
연산자 | 왼쪽 피연산자 | 오른쪽 피연산자 | 의미 |
---|---|---|---|
x + y |
datetimezone |
duration |
기간별 Datetimezone 오프셋 |
x + y |
duration |
datetimezone |
기간별 Datetimezone 오프셋 |
x - y |
datetimezone |
duration |
무효화된 기간별 Datetimezone 오프셋 |
x - y |
datetimezone |
datetimezone |
datetimezones 사이의 기간 |
datetimezone 값의 네이티브 형식은 내장 형식 datetimezone
입니다.
기간 값은 100나노초 틱으로 측정된 타임라인에서 두 점 사이의 거리를 불투명하게 표현합니다. 기간의 크기는 양수 또는 음수일 수 있으며 양수 값은 진행률(시간)을 표시하고 음수 값은 진행률을 역방향으로 나타냅니다. 기간에 저장할 수 있는 최소값은 -9,223,372,036,854,775,808틱 또는 10,675,199일 2시간 48분 05.4775808초 이전 시간입니다. 기간에 저장할 수 있는 최대값은 9,223,372,036,854,775,807 틱 또는 10,675,199일 2시간 48분 05.4775807초 앞으로 입니다.
기간 동안 리터럴 구문은 없지만 여러 표준 라이브러리 함수를 제공하여 생성합니다. 기본 함수 #duration
를 사용하여 기간을 생성할 수도 있습니다.
#duration(0, 0, 0, 5.5) // 5.5 seconds
#duration(0, 0, 0, -5.5) // -5.5 seconds
#duration(0, 0, 5, 30) // 5.5 minutes
#duration(0, 0, 5, -30) // 4.5 minutes
#duration(0, 24, 0, 0) // 1 day
#duration(1, 0, 0, 0) // 1 day
다음 연산자는 기간 값에 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
또한 다음 연산자는 해당 피연산자 중 하나 또는 둘 다를 기간 값으로 허용합니다.
연산자 | 왼쪽 피연산자 | 오른쪽 피연산자 | 의미 |
---|---|---|---|
x + y |
datetime |
duration |
기간별 날짜/시간 오프셋 |
x + y |
duration |
datetime |
기간별 날짜/시간 오프셋 |
x + y |
duration |
duration |
기간의 합계 |
x - y |
datetime |
duration |
무효화된 기간별 날짜/시간 오프셋 |
x - y |
datetime |
datetime |
날짜/시간 사이의 기간 |
x - y |
duration |
duration |
기간 차이 |
x * y |
duration |
number |
기간 1회 |
x * y |
number |
duration |
기간 1회 |
x / y |
duration |
number |
기간의 분수 |
기간 값의 네이티브 형식은 내장 형식 duration
입니다.
텍스트 값은 유니코드 문자 시퀀스를 나타냅니다. 텍스트 값에는 다음 문법을 따르는 리터럴 형식이 있습니다.
_text 리터럴:
"
text-literal-charactersopt "
text-literal-characters:
text-literal-character text-literal-charactersopt
text-literal-character:
single-text-character
character-escape-sequence
double-quote-escape-sequence
single-text-character:
() 또는 #
(U+0022
U+0023
) 뒤에 ()를U+0028
(
제외한 "
모든 문자
큰따옴표 이스케이프 시퀀스:
""
(U+0022
, U+0022
)
다음은 텍스트 값의 예입니다.
"ABC" // the text value ABC
다음 연산자는 텍스트 값에 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x & y |
Concatenation |
x ?? y |
Coalesce |
텍스트 값의 네이티브 형식은 내장 형식 text
입니다.
이진 값은 바이트 시퀀스를 나타냅니다.
이진 값에 대한 리터럴 구문은 없지만 이를 생성하기 위해 여러 표준 라이브러리 함수가 제공됩니다. 이진 값은 내장 함수 #binary
를 사용하여 생성될 수도 있습니다.
다음 예제에서는 바이트 목록에서 이진 값을 생성합니다.
#binary( {0x00, 0x01, 0x02, 0x03} )
다음 연산자는 이진 값에 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x >= y |
크거나 같음 |
x > y |
보다 큼 |
x < y |
보다 작음 |
x <= y |
작거나 같음 |
x ?? y |
Coalesce |
이진 값의 네이티브 형식은 내장 형식 이진입니다.
목록 값은 열거 시 값 시퀀스를 생성하는 값입니다. 목록에서 생성된 값에는 목록을 비롯한 모든 종류의 값이 포함될 수 있습니다. 목록은 다음과 같이 초기화 구문을 사용하여 생성할 수 있습니다.
list-expression:
{ item-listopt }
item-list:
item
item-list ,
항목:
식
식 ..
식
다음은 세 가지 텍스트 값이 포함된 목록 "A"
, "B"
및 "C"
를 정의하는 list-expression의 예입니다.
{"A", "B", "C"}
값 "A"
은 목록의 첫 번째 항목이며 값 "C"
은 목록의 마지막 항목입니다.
- 목록의 항목은 액세스할 때까지 평가되지 않습니다.
- 목록 구문을 사용하여 생성된 목록 값은 항목 목록에 표시되는 순서대로 항목을 생성하지만, 일반적으로 라이브러리 함수에서 반환된 목록은 열거될 때마다 다른 집합 또는 다른 수의 값을 생성할 수 있습니다.
목록에 a..b
정수 시퀀스를 포함하려면 다음 양식을 사용할 수 있습니다.
{ 1, 5..9, 11 } // { 1, 5, 6, 7, 8, 9, 11 }
목록 수라고 하는 목록의 항목 수는 함수를 사용하여 List.Count
확인할 수 있습니다.
List.Count({true, false}) // 2
List.Count({}) // 0
목록에는 사실상 무한 개수의 항목이 있을 수 있습니다. List.Count
이러한 목록이 정의되지 않았으면 오류가 발생하거나 종료되지 않을 수 있습니다.
목록에 항목이 없으면 빈 목록이라고 합니다. 빈 목록은 다음과 같이 작성됩니다.
{} // empty list
다음 연산자는 목록에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x & y |
Concatenate |
x ?? y |
Coalesce |
예시:
{1, 2} & {3, 4, 5} // {1, 2, 3, 4, 5}
{1, 2} = {1, 2} // true
{2, 1} <> {1, 2} // true
목록 값의 네이티브 형식은 항목 형식any
을 지정하는 내장 형식list
입니다.
레코드 값은 순서가 지정된 필드 시퀀스입니다. 필드는 레코드 내의 필드를 고유하게 식별하는 텍스트 값과 필드 값인 필드 이름으로 구성됩니다. 필드 값은 레코드를 비롯한 모든 종류의 값일 수 있습니다. 다음과 같이 초기화 구문을 사용하여 레코드를 생성할 수 있습니다.
record-expression:
[
field-listopt ]
field-list:
field
field ,
field-list
밭:
field-name =
식
field-name:
generalized-identifier
따옴표 붙은 식별자
다음 예제에서는 값이 있는 필드와 값이 있는 x
필드가 있는 y
레코드를 생성합니다2
.1
[ x = 1, y = 2 ]
다음 예제에서는 중첩된 레코드 값이 a
있는 필드가 있는 레코드를 생성합니다. 중첩된 레코드에는 값2
이 있는 필드가 있습니다b
.
[ a = [ b = 2 ] ]
다음은 레코드 식을 평가할 때 유지됩니다.
각 필드 이름에 할당된 식은 연결된 필드의 값을 결정하는 데 사용됩니다.
필드 이름에 할당된 식이 계산될 때 값을 생성하면 결과 레코드의 필드 값이 됩니다.
필드 이름에 할당된 식이 평가할 때 오류가 발생하는 경우 오류가 발생한 사실은 발생한 오류 값과 함께 필드와 함께 기록됩니다. 이후에 해당 필드에 액세스하면 기록된 오류 값으로 오류가 다시 발생합니다.
식은 초기화되는 것을 제외하고 레코드의 모든 필드 값에 해당하는 변수가 병합된 부모 환경과 같은 환경에서만 평가됩니다.
레코드의 값은 해당 필드에 액세스할 때까지 평가되지 않습니다.
레코드의 값은 최대 한 번 평가됩니다.
식의 결과는 빈 메타데이터 레코드가 있는 레코드 값입니다.
레코드 내의 필드 순서는 레코드-이니셜라이저 식에 표시되는 순서로 정의됩니다.
지정된 모든 필드 이름은 레코드 내에서 고유해야 합니다. 그렇지 않으면 오류가 발생합니다. 이름은 서수 비교를 사용하여 비교됩니다.
[ x = 1, x = 2 ] // error: field names must be unique
[ X = 1, x = 2 ] // OK
필드가 없는 레코드를 빈 레코드라고 하며 다음과 같이 작성됩니다.
[] // empty record
필드에 액세스하거나 두 레코드를 비교할 때 레코드 필드의 순서는 중요하지 않지만 레코드 필드가 열거되는 경우와 같은 다른 컨텍스트에서는 중요합니다.
동일한 두 레코드는 필드를 가져올 때 서로 다른 결과를 생성합니다.
Record.FieldNames([ x = 1, y = 2 ]) // [ "x", "y" ]
Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ]
레코드의 필드 수는 함수를 사용하여 Record.FieldCount
확인할 수 있습니다. 예시:
Record.FieldCount([ x = 1, y = 2 }) // 2
Record.FieldCount([]) // 0
레코드 초기화 구문을 [ ]
사용하는 것 외에도 값 목록과 필드 이름 또는 레코드 형식 목록에서 레코드를 생성할 수 있습니다. 예시:
Record.FromList({1, 2}, {"a", "b"})
위의 내용은 다음과 같습니다.
[ a = 1, b = 2 ]
다음 연산자는 레코드 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x & y |
Merge |
x ?? y |
Coalesce |
다음 예제에서는 위의 연산자를 보여 줍니다. 레코드 병합은 필드 이름이 겹치는 경우 오른쪽 피연산자의 필드를 사용하여 왼쪽 피연산자의 필드를 재정의합니다.
[ a = 1, b = 2 ] & [ c = 3 ] // [ a = 1, b = 2, c = 3 ]
[ a = 1, b = 2 ] & [ a = 3 ] // [ a = 3, b = 2 ]
[ a = 1, b = 2 ] = [ b = 2, a = 1 ] // true
[ a = 1, b = 2, c = 3 ] <> [ a = 1, b = 2 ] // true
레코드 값의 네이티브 형식은 필드의 열린 빈 목록을 지정하는 내장 형식 record
입니다.
테이블 값은 순서가 지정된 행 시퀀스입니다. 행은 열 값의 순서가 지정된 시퀀스입니다. 테이블의 형식은 테이블의 모든 행 길이, 테이블 열의 이름, 테이블 열의 형식 및 테이블 키의 구조(있는 경우)를 결정합니다.
테이블에 대한 리터럴 구문은 없지만 테이블을 생성하기 위해 여러 표준 라이브러리 함수가 제공됩니다. 내장 함수 #table
를 사용하여 테이블을 생성할 수도 있습니다.
다음 예제에서는 열 이름 목록과 행 목록에서 테이블을 생성합니다. 결과 테이블에는 두 개의 열과 세 개의 type any
행이 포함됩니다.
#table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}})
#table
은 전체 테이블 형식을 지정하는 데 사용할 수도 있습니다.
#table(
type table [Digit = number, Name = text],
{{1,"one"}, {2,"two"}, {3,"three"}}
)
여기서 새 테이블 값에는 열 이름과 열 형식을 지정하는 테이블 형식이 있습니다.
다음 연산자는 테이블 값에 대해 정의됩니다.
연산자 | 결과 |
---|---|
x = y |
같음 |
x <> y |
같지 않음 |
x & y |
Concatenation |
x ?? y |
Coalesce |
테이블 연결은 같은 이름의 열을 정렬하고 피연산자 테이블 중 하나에만 나타나는 열에 대해 채웁니다 null
. 다음 예제에서는 테이블 연결을 보여 줍니다.
#table({"A","B"}, {{1,2}})
& #table({"B","C"}, {{3,4}})
A | B | C |
---|---|---|
1 |
2 |
null |
null |
3 |
4 |
테이블 값의 네이티브 형식은 열 이름을 나열하고 모든 열 형식을 지정하며 키가 없는 사용자 지정 테이블 형식(내장 형식 table
에서 파생됨)입니다. (테이블 유형에 대한 자세한 내용은 테이블 유형을 참조하세요.)
함수 값은 인수 집합을 단일 값에 매핑하는 값입니다. 함수 값의 세부 정보는 Functions에 설명되어 있습니다.
형식 값은 다른 값을 분류하는 값입니다. 형식 값의 세부 정보는 형식에 설명되어 있습니다.