Tuple

Javohir Buzrukov

Keling bu mavzuni sodda qilib o'rganish uchun o'xshatish metodidan foydalanamiz :) O'zimiz bilgan, tushungan massiv ga o'xshatib ko'ramiz shunda soddaroq bo'ladi. Qani ketdik.

Tuple classi ni massivga o'xshagan to'plam deb qarasak boladi. Undan farqi har-xil turdagi ma'lumotlarni saqlash mumkin. Keling uni sintaksisi bilan tanishamiz:

Tuple<int, string, string> person = new Tuple <int, string, string>(1, "Steve", "Jobs");

//yoki 

var person = Tuple.Create(1, "Steve", "Jobs");

Tuple da ko'pi bilan 8 ta element saqlash mumkin. Agar undan ko'payib ketsa, kompilyator bizga xatolik beradi. Lekin bunda ham yechim bor har doimgidek ayyorlik ishlatamiz :) Tuple ichida tuple yozamiz quyidagicha:

var numbers = Tuple.Create(1, 2, Tuple.Create(3, 4, 5, 6, 7,  8), 9, 10, 11, 12, 13 );

Tuplega murojat class maydonlariga murojaat qilishga o'xshab ketadi.

var person = Tuple.Create(1, "Steve", "Jobs"); 

person.Item1; // returns 1 

person.Item2; // returns "Steve" 

person.Item3; // returns "Jobs"

8 - elementga person.Rest ko'rinishda murojat qilsa ham bo'ladi. person.Item8 dan farqi Rest qiymatni qovus ga olib chiqaradi.

E'tibor bering faqat 8- elementga oxirgi elementga EMAS

Tupledan, funksiyalarda argument sifatida foydalanish ham mumkin.

Funksiylardan Tuple toifasiga mansub qiymatlarni ham qabul qilib olishimiz mumkin:

Tupledan foydalanishning afzallik va kamchiliklari

Qulayliklari:

  • Funksiyalardan bir necha qiymatlarnii qabul qilish / yuborish

  • Key/Value ko'rinishida ishlash imkoniyati

Kamchiliklari:

  • string toifasi kabi Tuple immutable tur hisoblanadi. Yaratilgandan keyin uning qiymatlariga o'zgartirish kiritib bo'lmaydi.

  • Tuple qiymatli emas balki ma'lumotli (reference) toifa hisoblanadi. Buning hisobiga, u CPU ya'ni protsessorni zo'riqishga olib keladi.

Last updated

Was this helpful?