Programming TypeScript


funksiya * raqamlarni yaratish () : IterableIterator < raqam


Download 1.81 Mb.
bet45/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   41   42   43   44   45   46   47   48   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

funksiya * raqamlarni yaratish () : IterableIterator < raqam > {
ruxsat bering n = 0 while ( 1 ) { hosil n ++
}
}
ruxsat bering raqamlar = raqamlar yaratish ()
raqamlar . keyingi () // {qiymat: 0, bajarildi: noto'g'ri} raqamlarni baholaydi . keyingi () // {qiymat: 1, bajarildi: noto'g'ri} raqamlarni baholaydi . keyingi () // {qiymat: 2, bajarildi: noto'g'ri} ga baholanadi
Biz bu kitobda generatorlarni chuqurroq o'rganmaymiz - ular katta mavzu va bu kitob TypeScript haqida bo'lgani uchun men JavaScript xususiyatlaridan chetga chiqishni xohlamayman. Qisqasi, bu juda ajoyib JavaScript tili xususiyati bo'lib, TypeScript ham qo'llab-quvvatlaydi. Generatorlar haqida ko'proq ma'lumot olish uchun ularning MDN -dagi sahifasiga o'ting . Iteratorlar
Iteratorlar generatorlarning ikkinchi tomonidir: generatorlar qiymatlar oqimini ishlab chiqarish usuli bo'lsa, iteratorlar bu qiymatlarni iste'mol qilish usulidir. Terminologiya juda chalkash bo'lishi mumkin, shuning uchun keling, bir nechta ta'riflardan boshlaylik.
Takrorlash mumkin

Symbol.itera tor deb nomlangan xususiyatni o'z ichiga olgan har qanday ob'ekt , uning qiymati iteratorni qaytaruvchi funktsiyadir.
Iterator

qiymatiga ega ob'ektni qaytaradigan va bajarilgan keyingi deb nomlangan usulni belgilaydigan har qanday ob'ekt .
Generator yaratganingizda (masalan, createFibonacciGenerator ga qo'ng'iroq qilish orqali), siz ham takrorlanadigan, ham iterator bo'lgan qiymatni qaytarib olasiz , chunki u Symbol.iterator xususiyatini ham, keyingi usulni ham belgilaydi.
Symbol.iterator yoki next ni amalga oshiradigan ob'ekt (yoki sinf) yaratish orqali iterator yoki iteratorni qo'lda belgilashingiz mumkin . Masalan, 1 dan 10 gacha raqamlarni qaytaruvchi iteratorni aniqlaymiz:
ruxsat bering raqamlar = {
* [ Belgi . iterator ]() { uchun ( ruxsat n = 1 ; n <= 10 ; n ++ ) {
Yo'l bering n
}
}
}
Agar siz ushbu iteratorni kod muharriringizga kiritsangiz va kursorni uning ustiga olib kelsangiz, TypeScript uning turi sifatida nimani anglatishini ko'rasiz ( 4-2-rasm ).

4-2-rasm. Iteratorni qo'lda aniqlash
Boshqacha qilib aytadigan bo'lsak, raqamlar takrorlanuvchidir va generator funktsiyasini raqamlar[Symbol.iterator]() chaqirish takrorlanadigan iteratorni qaytaradi.
Siz nafaqat o'zingizning iteratorlaringizni belgilashingiz mumkin, balki JavaScript-ning o'rnatilgan iteratorlaridan umumiy to'plam turlari uchun foydalanishingiz mumkin - Array , Map , Set , String va boshqalar - quyidagi kabi ishlarni bajarish uchun :18

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling