- Published on
Swiftda Closures
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Swiftda, closure β bu nomsiz funksiyaga o'xshash maxsus kod bloki. Masalan,
Bu yerda Hello World chiqaradigan closure yaratilgan.
Closure haqida o'rganishdan oldin Swift funksiyalarini bilish muhim.
Closure e'lon qilish
Closure yaratishda func kalit so'zi ishlatilmaydi. Sintaksis quyidagicha:
{ (parameters) -> returnType in
// operatorlar
}
Bu yerda:
- parameters β closure qabul qiladigan qiymatlar
- returnType β closure qaytaradigan qiymat turi
- in β parametrlar/qaytish turini closure tanasidan ajratadi
Misol:
Closure parametrlari
Closure ham parametr qabul qilishi mumkin:
E'tibor bering:
(name: String)β parametrinβ parametrlar va closure tanasini ajratadigreetUser("Delilah")β parametr nomi yozilmaydi
Qiymat qaytaradigan Closure
Closure qiymat qaytarishi ham mumkin:
Tushuntirish:
(num: Int)β parametr-> Intβ qaytish turireturn squareβ qaytariladigan qiymat
Closureni funksiya parametri sifatida yuborish
Swiftda closureni funksiyaga parametr qilib berish mumkin:
Bu yerda:
- search β funksiya parametri
- () -> () β closure turi
- search() β closure chaqirilyapti
Trailing Closure
Agar funksiya oxirgi parametr sifatida closure qabul qilsa:
Bu yerda closure oxirgi parametr bo'lgani uchun trailing closure shaklida yozildi.
Autoclosure
Funksiya chaqirilayotganda closure'ni {} ishlatmasdan berish mumkin:
@autoclosure β avtomatik ravishda {} qo'shib beradi.
Eslatma: autoclosure parametr qabul qila olmaydi.
Shorthand argument nomlari
Swiftda closure argumentlarini $0, $1, $2 kabi qisqa nomlash mumkin:
Birinchi masalaning yechimi
Keling, birinchi masala "Oddiy closure" ni birga yechib ko'ramiz:
1-qadam: Masalani tushunish
5, 3β 5 + 3 = 810, 20β 10 + 20 = 30
2-qadam: Yechim algoritmi
- Ikki Int parametr qabul qiladigan closure yaratamiz
- Ularni qo'shamiz
- Natijani qaytaramiz
3-qadam: Kodni yozamiz
Qisqa yozuv:
Natija: Closure orqali oddiy qo'shish operatsiyasini yaratdik.