Değer, bir ifade değerlendirilerek oluşturulan verilerdir. Bu bölümde M dilindeki değer türleri açıklanmaktadır. Her değer türü değişmez bir söz dizimi, bu türdeki bir değer kümesi, bu değer kümesi üzerinde tanımlanan bir işleç kümesi ve yeni yapılandırılmış değerlere atfedilen iç türle ilişkilendirilir.
Tip
Literal
Sıfır
null
Mantıklı
truefalse
Numara
01-11.52.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 tanımlayıcısı, 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 değişmez nulldeğeri kullanılarak yazılır. Null 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 ?? y
Coalesce
Değerin null yerel türü, iç türüdür null.
Mantıksal
Boole işlemleri için mantıksal bir değer true veya false değerine sahiptir. Mantıksal değer, ve falsedeğişmez değerleri true 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ı değişmez değerleri ö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 Çift duyarlığıyla temsil edilir (ancak daha fazla duyarlığı koruyabilir). Ç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. (Çift gösterim, 5,0 x 10324 ile 1,7 x 10 308 arasında 15-16 basamak duyarlıklı yaklaşık 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.
Sayı Değil 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 Duyarlık kullanılarak gerçekleştirilir. Duyarlık, 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
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 + y
Sum
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.
Saat
Saat değeri , günün saatinin opak bir gösterimini depolar. Bir zaman, gece yarısından bu yana geçen 100 nanosaniyelik değer sayısını sayan ve 24 saatlik bir saatte geçen değer sayısı olarak kodlanır. Gece yarısından bu yana en fazla kene sayısı 23:59:59,9999999 saate karşılık gelir.
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 #timekullanılarak da oluşturulabilir:
#time(hour, minute, second)
Aşağıdakiler tutulmalıdır veya neden koduyla Expression.Error ilgili 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
Equal
x <> y
Not equal
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
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
time
duration
Süreye göre tarih uzaklığı
x + y
duration
time
Süreye göre tarih uzaklığı
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 saat
Yerel saat değerleri türü, iç türüdü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. 31 Aralık 9999'a karşılık gelen, dönem 3652058 en fazla gün sayısıdır.
Tarihler için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Tarihler, iç işlevi #datekullanılarak da oluşturulabilir:
#date(year, month, day)
Aşağıdakiler tutulmalıdır veya neden koduyla Expression.Error ilgili 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
Equal
x <> y
Not equal
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
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üreye göre tarih uzaklığı
x + y
duration
date
Süreye göre tarih uzaklığı
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 saat
Tarih değerlerinin yerel türü, iç türüdür date.
DateTime
Tarih 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 #datetimekullanı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
Equal
x <> y
Not equal
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
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'den en az dakika uzaklığı -840'tır ve utc uzaklığı -14:00 veya UTC'den on dört saat öncedir. UTC'den en fazla dakika uzaklığı 840'tır ve utc uzaklığı 14:00'a karşılık gelir.
Datetimezones için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Datetimezones da iç işlevi #datetimezonekullanılarak oluşturulabilir:
Aşağıdakiler tutulmalıdır veya neden koduyla Expression.Error ilgili 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 ≤ uzaklık-saat ≤ 14
-59 ≤ uzaklık-dakika ≤ 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
Equal
x <> y
Not equal
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
Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin datetimezone olmasına izin verir:
Operatör
Sol İşlenen
Sağ İşlenen
Anlamı
x + y
datetimezone
duration
Süreye göre datetimezone uzaklığı
x + y
duration
datetimezone
Süreye göre datetimezone uzaklığı
x - y
datetimezone
duration
Devredilen süreye göre datetimezone uzaklığı
x - y
datetimezone
datetimezone
Datetimezones 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 mesafenin 100 nanosaniyelik değerlerle ölçülen opak bir gösterimini 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 değer veya 10.675.199 gün 2 saat 48 dakika 05.4775808 saniye geriye doğru. Bir süre içinde depolanabilecek en yüksek değer 9.223.372.036.854.775.807 değer veya 10.675.199 gün 2 saat 48 dakika 05.4775807 saniye ileri doğrudır.
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 #durationkullanılarak da oluşturulabilir:
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
Devredilen süreye göre tarih saat uzaklığı
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ürenin kesri
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 dil bilgisi ile uyumlu bir değişmez değer biçimine sahiptir:
_text değişmez değeri: " text-literal-charactersopt" text-literal-characters:
text-literal-character text-literal-charactersopt
metin-değişmez-karakteri:
tek metinli karakter
character-escape-sequence
çift tırnak-kaçış dizisi
tek metin karakterli:
() veya # (U+0022U+0023) dışında " ve ardından ( (U+0028) gelen herhangi bir karakter 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
Equal
x <> y
Not equal
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
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 değişmez 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 #binarykullanı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
Equal
x <> y
Not equal
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.
Yerel liste değerleri türü, öğesinin öğe türünü belirten iç türüdürlistany.
Kaydet
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: [alan listesitercihi] alan-listesi:
alan
alan,alanı-listesi
alan:
alan adı=ifadesi
alan-adı:
genelleştirilmiş tanımlayıcı
quoted-identifier
Aşağıdaki örnek, değeri ile adlı x bir alan ve değeri 1ile adlı y bir alan içeren 2bir 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, değeriyle 2adlı b bir alana 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
Equal
x <> y
Not equal
x & y
Adres Mektup Birleştirme
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 değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Tablolar, iç işlevi #tablekullanı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
Equal
x <> y
Not equal
x & y
Bitiş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:
Tablo değerlerinin yerel türü, sütun adlarını listeleyen, tüm sütun türlerini belirten ve anahtar içermeyen özel bir tablo türüdür (iç türünden tabletüretilir). (Ş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.
Do you want to learn about table types in Business Central? In this module, you'll learn about the different functional table types and their specific characteristics, such as special fields, properties, and linked pages.