Darsliklar Dart Kortejlar (Tuples)

Dart Dart Kortejlar (Tuples)

Kortejlar (Records/Tuples) — bir necha qiymatni bitta birlikka jamlaydigan, ammo sinf yaratmasdan ishlatiladigan tuzilma. Dart 3’dan boshlab records (yozuvlar) rasmiy qo’shildi. Ular funksiyadan bir necha qiymat qaytarishda yoki bog’liq qiymatlarni birga saqlashda juda qulay.

Record (kortej)Dart 3’da qo’shilgan, bir necha qiymatni sinf yaratmasdan bitta birlikka jamlaydigan tuzilma. U dumaloq qavs () ichida yoziladi.

Record yaratish

Record dumaloq qavs ichida bir necha qiymatni jamlaydi:

void main() {
  var foydalanuvchi = ("Farrux", 26);
  print(foydalanuvchi);
  print(foydalanuvchi.$1);   // birinchi qiymat
  print(foydalanuvchi.$2);   // ikkinchi qiymat
}
(Farrux, 26)
Farrux
26

("Farrux", 26) — ikki qiymatli record. Uning qismlariga .$1, .$2 orqali murojaat qilinadi. Bu sinf yaratmasdan bog’liq qiymatlarni jamlashning tez usuli.

Nomlangan maydonlar

Record maydonlariga nom berish mumkin — bu kodni o’qiladigan qiladi:

void main() {
  var mahsulot = (nomi: "Telefon", narxi: 12000000);
  print(mahsulot.nomi);
  print(mahsulot.narxi);
}
Telefon
12000000

(nomi: ..., narxi: ...) — nomlangan maydonlar. Endi .$1 o’rniga mazmunli .nomi yozamiz. Bu record’ni ancha tushunarli qiladi.

Funksiyadan bir necha qiymat qaytarish

Record’ning eng katta foydasi — funksiyadan bir necha qiymat qaytarish. Ilgari buning uchun sinf yoki List kerak edi:

(int, int) bolish(int a, int b) {
  return (a ~/ b, a % b);   // butun va qoldiq
}

void main() {
  var natija = bolish(17, 5);
  print("Butun: ${natija.$1}, qoldiq: ${natija.$2}");
}
Butun: 3, qoldiq: 2

(int, int) — funksiya ikki butun son qaytarishini bildiradi. bolish bir yo’la butun va qoldiqni qaytardi. Bu record’ning eng amaliy qo’llanishidir.

Record va boshqa to’plamlar

Record’ni boshqa tuzilmalar bilan solishtiramiz:

Tuzilma Xususiyati
List bir turdagi, o’zgaruvchan, indeksli
Map kalit-qiymat
Record turli tur, o’zgarmas, bir necha qiymat

Record — kichik, bog’liq qiymatlarni tez jamlash uchun; katta yoki murakkab ma’lumot uchun sinf afzal.

Xulosa

Bu bo’limda record (kortej) yaratish, nomlangan maydonlar va funksiyadan bir necha qiymat qaytarishni ko’rib chiqdik. Record — sinf yaratmasdan qiymatlarni jamlashning zamonaviy usulidir. Keyingi darsda takrorlanuvchilar (Iterables) ga o’tamiz.