Record anonim, değiştirilemez ( immutable ) bir veri tipidir. İçinde birden fazla tipte veri barındırabilirler. Uzunlukları sabittir. Parantez içinde virgül ile ayırarak isim ve pozisyonlu şekilde tanımlanırlar.
(int, int, int, String) test = (1,3,5,"test"); (int, String, {int a, String b}) test2 = (1, a: 4, b: "asdas", "Test");
Dizilerde anahtarlar 0’dan başlıyor ancak kayıt tipi verilerde anahtarlar 1’den başlıyor. Veriye ulaşmak için değişken adından sonra nokta ile $ operatörünü kullanıp ulaşacağımız verinin anahtarını verdiysek $ operatorünü yazmadan direk anahtar adını yazıyoruz.
(int, int, int, String) test = (1,3,5,"test"); (int, String, {int a, String b}) test2 = (1, a: 4, b: "Merhaba", "Test"); print(test.$1); // 1 print(test2.b); // Merhaba
Kayıt tipinde yıkım yapmakta mümkündür.
(int, int, int, String) test = (1,3,5,"test"); var (s1, s2, s3, s4) = test; /* s1 = 1 s2 = 3 s3 = 5 s4 = "test" */
Bir fonksiyondan birden fazla değer döndürmek isterseniz kayıt tipini kullanabilirsiniz.
(String, int) kullaniciBilgi() { return ("Oğuzhan", 32); } var (isim, yas) = kullaniciBilgi(); print("$isim $yas"); // Oğuzhan 32