Programming TypeScript


interfeys Variant < T > { flatMap < U > ( f : ( qiymat : T ) => Variant < U > ) : Variant < U > getOrElse ( qiymati : T ) : T } sinf


Download 1.81 Mb.
bet135/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   131   132   133   134   135   136   137   138   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

interfeys Variant < T > {
flatMap < U > ( f : ( qiymat : T ) => Variant < U > ) : Variant < U >
getOrElse ( qiymati : T ) : T
}
sinf Ba'zilari < T > asboblar Variant < T > { konstruktor ( xususiy qiymat : T ) {} flatMap < U > ( f : ( qiymat : T ) => Variant < U > ) : Variant < U > {
qaytish f ( bu . qiymat )
}
getOrElse () : T { qaytish bu . qiymat
}
}
sinf Yo'q asboblar Variant < hech qachon > { flatMap < U > () : Variant < U > {
qaytish bu
}

getOrElse < U > ( qiymati : U ) : U {
qaytish qiymat
}
}
Some da flatMap-ni chaqirganimizda , biz f funktsiyasiga o'tamiz , bu flatMap yangi turdagi yangi Variantni berish uchun Some qiymati bilan chaqiradi .

Some da getOrElse ni chaqirish faqat Some qiymatini qaytaradi.
None muvaffaqiyatsiz hisobni ifodalaganligi sababli , flatMap- ga qo'ng'iroq qilish har doim Yo'q ni qaytaradi : bir marta hisoblash muvaffaqiyatsiz bo'lsa, biz bu nosozlikni tiklay olmaymiz (hech bo'lmaganda bizning maxsus Option ilovamiz bilan emas).
GetOrElse- ni None -da chaqirish har doim getOrElse- ga o'tkazgan qiymatni qaytaradi .
Biz aslida bu sodda amalga oshirishdan bir qadam nariga o'tishimiz va turlarimizni yaxshiroq belgilashimiz mumkin. Agar sizda T dan Variant gacha Variant va funksiya borligini bilsangiz , u holda Variant har doim Variant ga flatMap s bo'ladi . Ammo sizda Some yoki None borligini bilsangiz , aniqroq bo'lishingiz mumkin.
7-1-jadvalda Option s ning ikkita turida flatMap-ga qo'ng'iroq qilishda biz xohlagan natija turlari ko'rsatilgan .
7-1-jadval. Some va None da .flatMap(f) ni chaqirish natijasi





Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   131   132   133   134   135   136   137   138   ...   206




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