Ma'lumotlar tuzilmalar, kolleksiyalar, va generiklar
Dart beradi bir nechta turlari ning tuzilmalar uchun manipulyatsiya qilish a ning qiymatlar. Dart ro'yxatlar bor eng oddiy foydalanish holatlarida ham keng qo'llaniladi. Jeneriklar to'plamlar bilan ishlashda tushunchadir ning ma'lumotlar bog'langan uchun a xos turi, shunday kabi Roʻyxat yoki Xarita , uchun misol. Ular ta'minlash to'plamga ega bo'lishi mumkin bo'lgan ma'lumotlar turini belgilash orqali bir hil qiymatlarga ega bo'ladi.
Umumiy
<.. > sintaksis to'plam tomonidan qo'llab-quvvatlanadigan turni belgilash uchun ishlatiladi. Agar siz ro'yxat va xaritalarning oldingi misollarini ko'rib chiqsangiz, biz hech qanday turni ko'rsatmaganimizni sezasiz. Bu hisoblanadi chunki ular bor ixtiyoriy, va Dart mumkin xulosa chiqarish the turi asoslangan yoqilgan elementlar davomida to'plamni ishga tushirish.
Qachon va nega uchun foydalanish generiklar
The foydalanish ning generiklar mumkin Yordam bering a dasturchi uchun saqlab turish va saqlamoq yig'ish xulq-atvor nazorat ostida. Qachon biz foydalanish a yig'ish holda belgilash the ruxsat berilgan element turlari, bu hisoblanadi elementlarni to'g'ri kiritish bizning mas'uliyatimiz. Bu, kengroq kontekstda, qimmatga tushishi mumkin, chunki noto'g'ri kiritishlarning oldini olish va uni jamoa uchun hujjatlashtirish uchun tekshirishlarni amalga oshirishimiz kerak.
O'ylab ko'ring the quyidagi kod misol; kabi biz bor nomli the o'zgaruvchan qasoskor nomlari , biz bu nomlar ro'yxati bo'lishini kutamiz va boshqa hech narsa yo'q. Afsuski, kodlangan shaklda biz tartibsizlik yoki chalkashlikka olib keladigan raqamni ro'yxatga kiritishimiz mumkin:
asosiy() {
Roʻyxat qasoskor nomlari = ["Xalk", "Kapitan Amerika"]; avengerNames.add(1);
chop etish ("Qasoskor ismlar: $avengerNames");
// chop etadi Qasoskor ismlar: [Xulk, Kapitan Amerika, 1]
}
Biroq, agar biz belgilang the ip turi uchun the ro'yxat, keyin bu kod bo'lardi emas kompilyatsiya qilish, bu chalkashlikdan qochish:
asosiy() {
Ro'yxat qasoskor nomlari = ["Xalk", "Kapitan Amerika"]; avengerNames.add(1);
// Endi, qo'shish() funktsiyasi kutadi a 'int' shunday bu qilmaydi kompilyatsiya qilish chop etish ("Qasoskor ismlar: $avengerNames");
}
Umumiy va Dart harflar
Agar siz tekshirish tashqariga bu bo'lim ro'yxati va xarita misollar, siz ko'rasiz foydalanganmiz _
the [] va {} harflar uchun ishga tushirish ular. Bilan generiklar, biz mumkin belgilang a turi davomida ishga tushirish, [] qo'shish uchun prefiks
ro'yxatlar va {} uchun xaritalar.
Oling bir qarash the quyidagi misol:
asosiy() {
var qasoskor nomlari = ["Xulk", "Kapitan Amerika"]; var qasoskorlar = {
"Kapitan Amerika": “I mumkin qil bu hammasi kun!", "O'rgimchak Kishi": "Am I a Qasoskor?",
"Xalk": "Smaaaaaash!"
};
}
Belgilash the turi ning ro'yxat, ichida bu hol, ko'rinadi uchun bo'l ortiqcha kabi the Dart analizator bo'ladi biz taqdim etgan literallardan satr turini aniqlang. Biroq, ba'zi hollarda, bu muhim, masalan, biz bo'sh to'plamni ishga tushirayotganimizda, masalan, quyidagi misolda:
qayerda emptyStringArray = [];
Agar biz bor emas belgilangan the turi ning the bo'sh yig'ish, bu mumkin bor har qanday ma'lumotlar turi yoqilgan chunki u qabul qilinadigan umumiy turni anglatmaydi.
Dart generics tushunchasi va qo'shimcha ma'lumotlar tuzilmalari bilan qanday o'ynashini o'rganish taqdim etilgan tomonidan the til, siz mumkin murojaat qiling uchun the rasmiy til sayohat Tafsilotlar uchun : https : // dart. dev/ gidlar/ til/ til -tur#generics .
Do'stlaringiz bilan baham: |