- Published on
Swiftda ichma-ich funksiyalar (Nested Functions)
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Swiftda bir funksiya ichida boshqa funksiya bo'lishi mumkin. Bunday funksiyalar ichma-ich funksiyalar (nested functions) deb ataladi.
Ichma-ich funksiyalarni o'rganishdan oldin Swift funksiyalari bilan tanish bo'lish tavsiya etiladi.
Ichma-ich funksiyaning sintaksisi
Swiftda ichma-ich funksiya quyidagicha yaratiladi:
// tashqi funksiya
func function1() {
// kod
// ichki funksiya
func function2() {
// kod
}
}
Bu yerda function2() funksiyasi tashqi funksiya function1() ichida joylashgan.
Misol:
Yuqoridagi misolda biz ikki funksiya yaratdik:
greetMessage()β oddiy tashqi funksiyadisplayName()β ichki funksiya (tashqi funksiya ichida joylashgan)
Bu yerda ichki funksiya displayName() tashqi funksiya ichida chaqirilmoqda.
Agar biz ichki funksiyani tashqi funksiyadan tashqarida chaqirmoqchi bo'lsak, xato keladi:
use of unresolved identifier
Misol:
Bu misolda display() funksiyasi addNumbers() funksiyasi ichida joylashgan.
Misol:
Yuqoridagi misolda add() va subtract() funksiyalari operate() funksiyasi ichida joylashgan.
E'tibor bering:
func operate(symbol: String) -> (Int, Int) -> Int
Bu yerda (Int, Int) -> Int β tashqi funksiyaning qaytariladigan qiymat turi.
Ya'ni, tashqi funksiya ikkita Int parametr qabul qiladigan va Int qaytaradigan funksiyani qaytaradi.
Bu tur ichki funksiyalar (add yoki subtract) bilan bir xil bo'lgani uchun, tashqi funksiya ichki funksiyalardan birini qaytaradi.
Birinchi masalaning yechimi
Keling, birinchi masala "Yordamchi funksiya" ni birga yechib ko'ramiz:
1-qadam: Masalani tushunish
num = 5β "positive"num = -3β "negative"num = 0β "zero"
2-qadam: Yechim algoritmi
- Ichki funksiyalar yaratamiz: isPositive, isNegative
- Sonni tekshiramiz
- Mos natijani qaytaramiz
3-qadam: Kodni yozamiz
Natija: Ichki funksiyalar yordamida sonning belgisini aniqladik.