Dart dilinde veri tipleri – 2 ( Records )

image

24 Jun 2024

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