- Published on
Swiftda parametrli va qiymat qaytaradigan funksiya
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Funksiya parametri — bu funksiyaga qabul qilinadigan qiymat.
Funksiya parametrlari va qaytariladigan qiymatlar haqida o‘rganishdan oldin, Swift funksiyalari haqida bilib oling.
Keling misolni ko‘ramiz,
func addNumbers(a: Int, b: Int) {
var sum = a + b
print("Yig‘indi:", sum)
}
addNumbers(a: 2, b: 3)
Natija
Yig‘indi: 5
Yuqoridagi misolda addNumbers() funksiyasi ikki parametr qabul qiladi: a va b. E’tibor bering:
addNumbers(a: 2, b: 3)
Bu yerda a: 2, b: 3 — mos ravishda a va b parametrlari 2 va 3 qiymatlarni olishini bildiradi.
Funksiya chaqiruvi davomida beriladigan qiymatlar argumentlar deb ataladi.
Funksiya parametrlari uchun standart qiymatlar
Swiftda parametrlar uchun standart qiymat berish mumkin.
Buning uchun = operatori ishlatiladi. Misol:
func addNumbers(a: Int = 7, b: Int = 8) {
var sum = a + b
print("Yig‘indi:", sum)
}
// ikki argument bilan chaqirish
addNumbers(a: 2, b: 3)
// bitta argument bilan chaqirish
addNumbers(a: 2)
// argumentsiz chaqirish
addNumbers()
Natija
Yig‘indi: 5
Yig‘indi: 10
Yig‘indi: 15
Bu yerda:
func addNumbers(a: Int = 7, b: Int = 8)
Parametrlarning standart qiymatlari mos ravishda 7 va 8 qilib berilgan.
Nomlangan argument (Argument Label)
Swiftda funksiyani yanada ifodali qilish uchun argument yorliqlaridan foydalaniladi.
Misol:
func sum(of a: Int, and b: Int) {
print("Yig‘indi:", a + b)
}
sum(of: 2, and: 3)
Natija
Yig‘indi: 5
Bu ko‘rinish quyidagiga qaraganda ancha ma’noli:
sum(a: 2, b: 3)
Argument yorliqlarini olib tashlash
Agar parametrdan oldin _ qo‘ysak, argument yorliqlari ishlatilmaydi.
func sum(_ a: Int, _ b: Int) {
print("Yig‘indi:", a + b)
}
sum(2, 3)
Natija
Yig‘indi: 5
Variadic parametrlar (ko‘p miqdordagi argumentlar)
Ba’zan argumentlar soni oldindan noma’lum bo‘ladi. Bunday holatda variadic parametrlar ishlatiladi.
... belgisi parametrning variadic ekanini bildiradi.
// bir nechta sonlarning yig‘indisini topish
func sum(numbers: Int...) {
var result = 0
for num in numbers {
result = result + num
}
print("Yig‘indi = \(result)")
}
sum(numbers: 1, 2, 3)
sum(numbers: 4, 9)
Natija
Yig‘indi = 6
Yig‘indi = 13
numbers variadic bo‘lgani uchun u funksiya ichida massiv sifatida ishlaydi.
inout parametrlar
Oddiy parametrlar funksiyada o‘zgartirilmaydi — ular konstantadir.
Masalan, ushbu kod xato beradi:
func changeName(name: String) {
if name == "" {
// Xato yuz beradi
name = "Ross"
}
}
Xato:
'let' constantiga qiymat berib bo‘lmaydi
Parametrni o‘zgaruvchan qilish uchun inout ishlatiladi:
func changeName(name: inout String) {
if name == "Ross" {
name = "Joey"
}
}
var userName = "Ross"
print("Oldin:", userName)
changeName(name: &userName)
print("Keyin:", userName)
Natija
Oldin: Ross
Keyin: Joey
inout parametrga argument berishda & belgisi ishlatiladi.
Funksiyada qaytariladigan qiymat (Return Value)
Funksiya qaytariladigan qiymatga ega bo‘lishi mumkin. Buning uchun return operatori ishlatiladi.
func addNumbers(a: Int, b: Int) -> Int {
var sum = a + b
return sum
}
let result = addNumbers(a: 2, b: 3)
print("Yig‘indi:", result)
Natija
Yig‘indi: 5
Funksiyadan bir necha qiymat qaytarish
Funksiya bir nechta qiymat qaytarishi ham mumkin — tuple yordamida.
func checkMarks() -> (String, Int) {
...
return (message, marks)
}
Bu yerda qaytarilayotgan qiymatlar tartibi qo‘sh tirnoq ichidagi tuple tartibi bilan mos bo‘lishi kerak.
Misol:
func compute(number: Int) -> (Int, Int, Int) {
var square = number * number
var cube = square * number
return (number, square, cube)
}
var result = compute(number: 5)
print("Son:", result.0)
print("Kvadrat:", result.1)
print("Kub:", result.2)
Natija
Son: 5
Kvadrat: 25
Kub: 125
Bu yerda result bir nechta qiymatlarni saqlovchi tuple bo‘lib, ular indeks orqali olinadi.