Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Değer, bir ifade değerlendirilerek oluşturulan verilerdir. Bu bölümde M dilindeki değer türleri açıklanmaktadır. Her bir değer türü, o türdeki değerlerin bir kümesi, bu değer kümesi üzerinde tanımlanmış bir işleç kümesi, yeni oluşturulan değerlere atfedilen bir içsel tür ve belirli bir söz dizimi ile ilişkilendirilir.
Tip | Literal |
---|---|
Sıfır | null |
Mantıklı | true false |
Numara | 0 1 -1 1.5 2.3e-5 |
Time | #time(09,15,00) |
Date | #date(2013,02,26) |
Tarih Saat | #datetime(2013,02,26, 09,15,00) |
DateTimeZone | #datetimezone(2013,02,26, 09,15,00, 09,00) |
Süre | #duration(0,1,30,0) |
Metin | "hello" |
İkili | #binary("AQID") |
Liste | {1, 2, 3} |
Kayıt | [ A = 1, B = 2 ] |
Table | #table({"X","Y"},{{0,1},{1,0}}) |
İşlev | (x) => x + 1 |
Tür | type { number } type table [ A = any, B = text ] |
Aşağıdaki bölümlerde her bir değer türü ayrıntılı olarak ele alınıyor. Türler ve tür ataması, Türler'de resmi olarak tanımlanır. İşlev değerleri İşlevler'de tanımlanır. Aşağıdaki bölümlerde her değer türü için tanımlanan işleçler listelenmiştir ve örnekler verebilirsiniz. İşleç semantiğinin tam tanımı İşleçler bölümünde yer alır.
Boş
Null değer, bir değerin yokluğunu veya belirsiz veya bilinmeyen durum değerini göstermek için kullanılır. Null değer, null
literal kullanılarak yazılır. Null değerler için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x > y |
Daha büyük |
x >= y |
Büyüktür veya eşittir |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x = y |
eşit |
x <> y |
Eşit değil |
x ?? y |
Coalesce |
null
değerinin öz tipi, null
içsel türüdür.
Mantıksal
Boole işlemleri için mantıksal bir değer true veya false değerine sahiptir. Mantıksal bir değer, true
ve false
değişmezleri kullanılarak yazılır. Mantıksal değerler için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x > y |
Büyüktür |
x >= y |
Büyüktür veya eşittir |
x < y |
Küçüktür |
x <= y |
Küçüktür veya eşittir |
x = y |
Equal |
x <> y |
Not equal |
x or y |
Koşullu mantıksal VEYA |
x ?? y |
Coalesce |
x and y |
Koşullu mantıksal AND |
not x |
Mantıksal DEĞİl |
Her iki mantıksal değerin (true
ve false
) yerel türü, iç türüdür logical
.
Sayı
Sayı değeri , sayısal ve aritmetik işlemler için kullanılır. Aşağıda sayı sabitleri örnekleri verilmiştir:
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)
Bir sayı, en azından bir Double hassasiyetiyle temsil edilir (ancak daha fazla hassasiyet sağlayabilir). Çift gösterimi, [IEEE 754-2008] içinde tanımlanan ikili kayan nokta aritmetiği için IEEE 64 bit çift duyarlık standardıyla uyumludur. (Double gösterimi, 5,0 x 10324 ile 1,7 x 10308 arasında, 15 ila 16 basamak duyarlılıkla yaklaşık bir dinamik aralığa sahiptir.)
Aşağıdaki özel değerler de sayı değerleri olarak kabul edilir:
Pozitif sıfır ve negatif sıfır. Çoğu durumda, pozitif sıfır ve negatif sıfır, basit sıfır değeriyle aynı şekilde davranır, ancak bazı işlemler ikisini birbirinden ayırır.
Pozitif sonsuzluk (
#infinity
) ve negatif sonsuzluk (-#infinity
). Sonsuzlar, sıfır olmayan bir sayıyı sıfıra bölme gibi işlemler tarafından üretilir. Örneğin,1.0 / 0.0
pozitif sonsuzluk verir ve-1.0 / 0.0
negatif sonsuzluk verir.Not-a-Number (NaN) değeri
#nan
genellikle NaN olarak kısaltılır. NaN'ler, sıfırı sıfıra bölme gibi geçersiz kayan nokta işlemleriyle oluşturulur.
İkili matematik işlemleri bir Hassasiyet kullanılarak gerçekleştirilir. Kesinlik, işlenenlerin yuvarlandığı etki alanını ve işlemin gerçekleştirildiği etki alanını belirler. Açıkça belirtilen bir duyarlık olmadığında, bu tür işlemler Çift Duyarlık kullanılarak gerçekleştirilir.
Matematiksel işlemin sonucu hedef biçim için çok küçükse, işlemin sonucu pozitif sıfır veya negatif sıfır olur.
Matematiksel işlemin sonucu hedef biçim için çok büyükse, işlemin sonucu pozitif sonsuz veya negatif sonsuz olur.
Matematik işlemi geçersizse işlemin sonucu NaN olur.
Kayan nokta işleminin işlenenlerinden biri veya her ikisi de NaN ise, işlemin sonucu NaN olur.
Sayı değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x > y |
Daha büyük |
x >= y |
Büyüktür veya eşittir |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x = y |
Eşit |
x <> y |
Eşit değil |
x + y |
Toplam |
x - y |
Fark |
x * y |
Ürün |
x / y |
Bölüm |
x ?? y |
Coalesce |
+x |
Birli artı |
-x |
Olumsuzlama |
Sayı değerlerinin yerel türü, iç türüdür number
.
Zaman
Saat değeri , günün saatinin opak bir gösterimini depolar. Bir zaman, gece yarısından bu yana geçen 100 nanosaniyelik tıklama sayısı olarak, 24 saatlik bir saatte kodlanır. Gece yarısından bu yana saat tıklamaları açısından maksimum sayı 23:59:59,9999999 saati ifade eder.
Zaman için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Zaman, iç işlevi #time
kullanılarak da oluşturulabilir:
#time(hour, minute, second)
Aşağıdakiler doğru olmalıdır veya Expression.Error
neden kodu ile bir hata oluşur:
0 ≤ saat ≤ 24
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59
Buna ek olarak, saat = 24 ise, dakika ve saniye sıfır olmalıdır.
Saat değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Daha büyük |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x ?? y |
birleşmek |
Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih olmasına izin verir:
Operatör | Sol İşlenen | Sağ Operant | Anlamı |
---|---|---|---|
x + y |
time |
duration |
Süreye göre tarih uzaklığı |
x + y |
duration |
time |
Süreye göre tarih kaydırması |
x - y |
time |
duration |
Negatif süreye göre tarih uzaklığı |
x - y |
time |
time |
Tarihler arasındaki süre |
x & y |
date |
time |
Birleştirilmiş tarih ve saat |
Zaman değerlerinin doğal türü, içsel türdür time
.
Tarih
Tarih değeri , belirli bir günün opak gösterimini depolar. Tarih, Gregoryen takvimde 1 Ocak 0001 Ortak Dönemi'nden başlayarak, dönem sonundan bu yana geçen gün sayısı olarak kodlanır. Dönem başlangıcından itibaren azami gün sayısı 3652058'dir ve bu, 31 Aralık 9999 tarihine karşılık gelir.
Tarihler için doğrudan bir sözdizimi olmasa da, tarihleri oluşturmak için birkaç standart kitaplık işlevi sağlanır. Tarihler, iç işlevi #date
kullanılarak da oluşturulabilir:
#date(year, month, day)
Aşağıdaki şartlar sağlanmazsa, neden koduyla Expression.Error
bir hata oluşur.
1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31
Ayrıca, gün seçilen ay ve yıl için geçerli olmalıdır.
Tarih değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Daha büyük |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x ?? y |
Coalesce |
Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih olmasına izin verir:
Operatör | Sol İşlenen | Sağ İşlenen | Anlamı |
---|---|---|---|
x + y |
date |
duration |
Süreyle tarih kaydırma |
x + y |
duration |
date |
Süreyle kaydırılan tarih |
x - y |
date |
duration |
Negatif süreye göre tarih uzaklığı |
x - y |
date |
date |
Tarihler arasındaki süre |
x & y |
date |
time |
Birleştirilmiş tarih ve zaman |
Tarih değerlerinin yerel türü, iç türüdür date
.
DateTime
Bir tarih ve saat değeri hem tarih hem de saat içerir.
Tarih saatlerinin değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Datetimes, iç işlevi #datetime
kullanılarak da oluşturulabilir:
#datetime(year, month, day, hour, minute, second)
Aşağıdakiler tutulmalıdır veya Expression.Error neden koduyla bir hata oluşur: 1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31
0 ≤ saat ≤ 23
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59
Ayrıca, gün seçilen ay ve yıl için geçerli olmalıdır.
Tarih saat değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Büyüktür |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x ?? y |
Coalesce |
Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih saat olmasına izin verir:
Operatör | Sol İşlenen | Sağ İşlenen | Anlamı |
---|---|---|---|
x + y |
datetime |
duration |
Süreye göre tarih saat uzaklığı |
x + y |
duration |
datetime |
Süreye göre tarih saat uzaklığı |
x - y |
datetime |
duration |
Devredilen süreye göre tarih saat uzaklığı |
x - y |
datetime |
datetime |
Tarih saatleri arasındaki süre |
Tarih saat değerlerinin yerel türü, iç türüdür datetime
.
DateTimeZone
Datetimezone değeri bir datetime ve saat dilimi içerir. Saat dilimi, UTC'den dakika uzaklığı olarak kodlanır ve tarih saat bölümünün Evrensel Eşgüdümlü Saat'ten (UTC) uzak olması gereken dakika sayısını sayar. UTC'ye olan dakika cinsinden en az sapma -840'tır, bu da UTC sapması olarak -14:00 ya da UTC'den on dört saat daha erken demektir. UTC'den en fazla dakika uzaklığı 840'tır ve utc uzaklığı 14:00'a karşılık gelir.
Datetimezones için doğrudan bir söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Datetimezones da iç işlevi #datetimezone
kullanılarak oluşturulabilir:
#datetimezone(
year, month, day,
hour, minute, second,
offset-hours, offset-minutes)
Aşağıdaki koşullar sağlanmalıdır aksi takdirde neden koduyla Expression.Error
bir hata oluşur.
1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31
0 ≤ saat ≤ 23
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59
-14 ≤ saat farkı ≤ 14
-59 ≤ kaydırma dakikası ≤ 59
Buna ek olarak, gün seçilen ay ve yıl için geçerli olmalı ve offset-hours = 14 ise offset-minutes <= 0 ve offset-hours = -14 ise offset-minutes >= 0 olmalıdır.
Datetimezone değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Büyüktür |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x ?? y |
Coalesce |
Aşağıdaki işleçler, işlenenlerinden birinin veya her ikisinin datetimezone olmasına olanak tanır:
Operatör | Sol İşlenen | Sağ Operatör | Anlamı |
---|---|---|---|
x + y |
datetimezone |
duration |
Süreye göre datetimezone uzaklığı |
x + y |
duration |
datetimezone |
Süreye göre tarih-zaman dilimi kayması |
x - y |
datetimezone |
duration |
Negatif süreyle ayarlanan datetimezone farkı |
x - y |
datetimezone |
datetimezone |
Tarih saat dilimleri arasındaki süre |
Datetimezone değerlerinin yerel türü, iç türüdür datetimezone
.
Süre
Süre değeri, zaman çizelgesindeki iki nokta arasındaki 100 nanosaniyelik dilimler halinde ölçülen mesafenin opak bir temsilini depolar. Bir sürenin büyüklüğü pozitif veya negatif olabilir; pozitif değerler zaman içinde ilerlemeyi ifade eder ve negatif değerler zamanda geriye doğru ilerlemeyi ifade eder. Bir süre içinde depolanabilecek en düşük değer -9.223.372.036.854.775.808 tık veya 10.675.199 gün 2 saat 48 dakika 05.4775808 saniye zaman içerisinde geridir. Bir süre içinde depolanabilecek en yüksek değer 9,223,372,036,854,775,807 ticks veya 10.675.199 gün 2 saat 48 dakika 05.4775807 saniye ileriye doğrudur.
Süreler için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Süreler, iç işlevi #duration
kullanılarak da oluşturulabilir:
#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
Süre değerlerinde aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Büyüktür |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x ?? y |
Coalesce |
Ayrıca, aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin de süre değeri olmasına izin verir:
Operatör | Sol İşlenen | Sağ İşlenen | Anlamı |
---|---|---|---|
x + y |
datetime |
duration |
Süreye göre tarih saat uzaklığı |
x + y |
duration |
datetime |
Süreye göre tarih saat uzaklığı |
x + y |
duration |
duration |
Sürelerin toplamı |
x - y |
datetime |
duration |
"Negatif süre ile zaman farkı" |
x - y |
datetime |
datetime |
Tarih saatleri arasındaki süre |
x - y |
duration |
duration |
Süre farkı |
x * y |
duration |
number |
Sürenin N katı |
x * y |
number |
duration |
Sürenin N katı |
x / y |
duration |
number |
Süre'nin kesir kısmı |
x / y |
duration |
duration |
Sürelerin sayısal bölümü |
Süre değerlerinin yerel türü, iç türüdür duration
.
Metin
Metin değeri, Unicode karakter dizisini temsil eder. Metin değerleri, aşağıdaki gramerle uyumlu harfiyen bir forma sahiptir.
_text literal değeri:
"
text-literal-charactersopt"
metin-harf-karakterleri:
metin-harf-karakter metin-harf-karakterleropt
metin-harfi-karakter
tek metinli karakter
karakter kaçış dizisi
iki tırnak-kaçış dizisi
tek metin karakterli:
Herhangi bir karakter, "
(U+0022
) veya #
(U+0023
) dışında, (
(U+0028
) ile ardından gelen
double-quote-escape-sequence:
""
(U+0022
, U+0022
)
Aşağıda bir metin değeri örneği verilmiştir:
"ABC" // the text value ABC
Aşağıdaki işleçler metin değerlerinde tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Büyüktür |
x < y |
Daha az |
x <= y |
Küçüktür veya eşittir |
x & y |
Bitiştirme |
x ?? y |
Coalesce |
Metin değerlerinin yerel türü, iç türüdür text
.
İkilik
İkili değer bir bayt dizisini temsil eder.
İkili değerler için doğrudan bir söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. İkili değerler, iç işlevi #binary
kullanılarak da oluşturulabilir.
Aşağıdaki örnek, bayt listesinden bir ikili değer oluşturur:
#binary( {0x00, 0x01, 0x02, 0x03} )
İkili değerlerde aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x >= y |
Büyüktür veya eşittir |
x > y |
Büyüktür |
x < y |
Küçüktür |
x <= y |
Küçüktür veya eşittir |
x ?? y |
Coalesce |
İkili değerlerin yerel türü, iç tür ikili türüdür.
Liste
Liste değeri, numaralandırıldığında bir değer dizisi oluşturan bir değerdir. Liste tarafından üretilen bir değer, liste de dahil olmak üzere herhangi bir türde değer içerebilir. Listeler aşağıdaki gibi başlatma söz dizimi kullanılarak oluşturulabilir:
list-expression:
{ item-listopt }
öğe-listesi:
öğe
öğe,
öğesi-listesi
madde:
ifade
ifade..
ifadesi
Aşağıda, üç metin değerine sahip bir liste tanımlayan bir liste ifadesi örneği verilmiştir: "A"
, "B"
ve "C"
.
{"A", "B", "C"}
Değer "A"
listedeki ilk öğedir ve değer "C"
listedeki son öğedir.
- Bir listenin öğeleri erişilene kadar değerlendirilmez.
- Liste söz dizimi kullanılarak oluşturulan liste değerleri öğeleri öğe listesinde göründükleri sırayla üretse de, genel olarak kitaplık işlevlerinden döndürülen listeler her numaralandırıldığında farklı bir küme veya farklı sayıda değer üretebilir.
Listeye a..b
tamsayı dizisi eklemek için, form kullanılabilir:
{ 1, 5..9, 11 } // { 1, 5, 6, 7, 8, 9, 11 }
Listedeki öğe sayısı (liste sayısı olarak bilinir) işlevi kullanılarak List.Count
belirlenebilir.
List.Count({true, false}) // 2
List.Count({}) // 0
Bir listede etkili bir şekilde sonsuz sayıda öğe olabilir; List.Count
bu tür listeler tanımlanmamıştır ve hata verebilir veya sonlandırılmayabilir.
Listede öğe yoksa, boş liste olarak adlandırılır. Boş bir liste şöyle yazılır:
{} // empty list
Listeler için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Equal |
x <> y |
Eşit değil |
x & y |
Birleştir |
x ?? y |
Kaynaşmak |
Örneğin:
{1, 2} & {3, 4, 5} // {1, 2, 3, 4, 5}
{1, 2} = {1, 2} // true
{2, 1} <> {1, 2} // true
Liste değerlerinin özgün türü, any
öğe türünü belirten içsel tür list
'dir.
Kayıt
Kayıt değeri, sıralı bir alan dizisidir. Alan, kayıttaki alanı benzersiz olarak tanımlayan bir metin değeri olan alan adından ve alan değerinden oluşur. Alan değeri, kayıt da dahil olmak üzere herhangi bir tür değer olabilir. Kayıtlar aşağıdaki gibi başlatma söz dizimi kullanılarak oluşturulabilir:
kayıt ifadesi:
[
liste alanıopsiyonu]
alan listesi:
alan
alan,
alan listesi
alan:
alan adı=
ifadesi
alan-adı:
genelleştirilmiş tanımlayıcı
quoted-identifier
Aşağıdaki örnek, x
adlı alanı 1
değeriyle ve y
adlı alanı 2
değeriyle içeren bir kayıt oluşturur.
[ x = 1, y = 2 ]
Aşağıdaki örnek, iç içe kayıt değerine sahip a
adlı alana sahip bir kayıt oluşturur. İç içe kayıt, b
adlı bir alana ve 2
değerine sahiptir.
[ a = [ b = 2 ] ]
Kayıt ifadesi değerlendirilirken aşağıdakiler geçerlidir:
Her alan adına atanan ifade, ilişkili alanın değerini belirlemek için kullanılır.
Bir alan adına atanan ifade değerlendirildiğinde bir değer üretirse, sonuçta elde edilen kaydın alanının değeri olur.
Bir alan adına atanan ifade değerlendirildiğinde bir hata oluşturursa, bir hatanın oluşturulduğu gerçeği, oluşturulan hata değeriyle birlikte alana kaydedilir. Bu alana daha sonra erişim, kaydedilen hata değeriyle bir hatanın yeniden yükseltilmesine neden olur.
İfade, üst ortam gibi bir ortamda değerlendirilir ve yalnızca kaydın başlatılmakta olan alan dışındaki her alanının değerine karşılık gelen değişkenler birleştirilir.
Kayıttaki bir değer, ilgili alana erişilene kadar değerlendirilmez.
Kayıttaki bir değer en fazla bir kez değerlendirilir.
İfadenin sonucu, boş meta veri kaydına sahip bir kayıt değeridir.
Kayıttaki alanların sırası, kayıt başlatıcısı-ifadesinde göründükleri sırayla tanımlanır.
Belirtilen her alan adının kayıt içinde benzersiz olması gerekir, aksi durumda bu bir hatadır. Adlar sıralı karşılaştırma kullanılarak karşılaştırılır.
[ x = 1, x = 2 ] // error: field names must be unique
[ X = 1, x = 2 ] // OK
Alanları olmayan bir kayda boş kayıt adı verilir ve aşağıdaki gibi yazılır:
[] // empty record
Bir alana erişilirken veya iki kayıt karşılaştırılırken bir kaydın alanlarının sırası önemli olmasa da, kaydın alanlarının numaralandırılması gibi diğer bağlamlarda önemlidir.
Alanlar elde edildiğinde aynı iki kayıt farklı sonuçlar üretir:
Record.FieldNames([ x = 1, y = 2 ]) // [ "x", "y" ]
Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ]
Bir kayıttaki alanların sayısı işlevi kullanılarak Record.FieldCount
belirlenebilir. Örneğin:
Record.FieldCount([ x = 1, y = 2 }) // 2
Record.FieldCount([]) // 0
Kayıt başlatma söz dizimini [ ]
kullanmaya ek olarak, kayıtlar bir değer listesinden ve alan adları listesinden veya kayıt türünden oluşturulabilir. Örneğin:
Record.FromList({1, 2}, {"a", "b"})
Yukarıdakiler aşağıdakilere eşdeğerdir:
[ a = 1, b = 2 ]
Kayıt değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x & y |
Birleştir |
x ?? y |
Coalesce |
Aşağıdaki örneklerde yukarıdaki işleçler gösterilmektedir. Kayıt birleştirmenin, alan adlarında çakışma olması halinde, sol işlenendeki alanları geçersiz kılmak için sağ işlenendeki alanları kullandığını unutmayın.
[ 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
Kayıt değerlerinin yerel türü, açık boş alan listesini belirten iç türüdür record
.
Tablo
Tablo değeri sıralı bir satır dizisidir. Satır, sıralı bir sütun değerleri dizisidir. Tablo türü tablodaki tüm satırların uzunluğunu, tablo sütunlarının adlarını, tablo sütunlarının türlerini ve tablo anahtarlarının yapısını (varsa) belirler.
Tablolar için literal bir söz dizimi olmasa da, bunların oluşturulmasına imkan tanıyan birkaç standart kitaplık işlevi sunulmaktadır. Tablolar, iç işlevi #table
kullanılarak da oluşturulabilir.
Aşağıdaki örnek, sütun adları listesinden ve satır listesinden bir tablo oluşturur. Sonuçta elde edilen tablo iki sütun type any
ve üç satır içerir.
#table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}})
#table
tam tablo türünü belirtmek için de kullanılabilir:
#table(
type table [Digit = number, Name = text],
{{1,"one"}, {2,"two"}, {3,"three"}}
)
Burada yeni tablo değeri, sütun adlarını ve sütun türlerini belirten bir tablo türüne sahiptir.
Tablo değerleri için aşağıdaki işleçler tanımlanır:
Operatör | Sonuç |
---|---|
x = y |
Eşit |
x <> y |
Eşit değil |
x & y |
Birleştirme |
x ?? y |
Coalesce |
Tablo birleştirme, adlandırılmış sütunlar gibi hizalanır ve işlenen tablolardan yalnızca birinde görünen sütunlar için doldurulur null
. Aşağıdaki örnekte tablo birleştirme gösterilmektedir:
#table({"A","B"}, {{1,2}})
& #table({"B","C"}, {{3,4}})
A | B | C |
---|---|---|
1 |
2 |
null |
null |
3 |
4 |
Tablo değerlerinin yerel türü, içsel tür table
'den türetilen, sütun adlarını listeleyen, tüm sütun türlerini 'any' olarak belirten ve anahtarı olmayan özel bir tablo türüdür. (Şuraya gidin: Tablo türleriyle ilgili ayrıntılar için tablo türleri.)
İşlev
İşlev değeri , bir dizi bağımsız değişkeni tek bir değerle eşleyen bir değerdir. İşlev değerlerinin ayrıntıları İşlevler bölümünde açıklanmıştır.
Tür
Tür değeri, diğer değerleri sınıflandırır. Tür değerlerinin ayrıntıları Türler bölümünde açıklanmıştır.