- Published on
Swiftda funksiya Overloading
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Swiftda bir nechta funksiyalar bir xil nomga ega bo‘lishi mumkin, agar ularning parametrlari farq qilsa (parametrlar soni boshqacha, turlari boshqacha yoki har ikkalasi).
Bunday funksiyalar overloaded functions (ortiqcha yuklangan funksiyalar) deyiladi. Bu xususiyat esa function overloading deb ataladi.
Misol:
// bir xil nom, turli argumentlar
func test() { ... }
func test(value: Int) -> Int { ... }
func test(value: String) -> String { ... }
func test(value1: Int, value2: Double) -> Double { ... }
Bu yerda test() funksiyasi overloaded qilingan. Nomlari bir xil, ammo argument turlari boshqacha.
Return turi overloadingga taalluqli emas. Funksiyalar qaytaradigan qiymat turi bir xil yoki boshqacha bo‘lishi mumkin, ammo parametrlari albatta farq qilishi kerak.
Misol:
// Int turidagi parametrga ega funksiya
func displayValue(value: Int) {
print("Integer qiymat:", value)
}
// String turidagi parametrga ega funksiya
func displayValue(value: String) {
print("String qiymat:", value)
}
// String parametr bilan chaqirish
displayValue(value: "Swift")
// Int parametr bilan chaqirish
displayValue(value: 2)
Natija:
String qiymat: Swift
Integer qiymat: 2
Bu misolda displayValue() quyidagicha overloaded qilingan:
- biri
Intparametr oladi - boshqasi
Stringparametr oladi
Chaqirilgan parametr turiga qarab, tegishli funksiya tanlanadi.

Misol 2: Parametrlar soni bo‘yicha Overloading
// ikki parametrli funksiya
func display(number1: Int, number2: Int) {
print("1-Integer: \(number1) va 2-Integer: \(number2)")
}
// bitta parametrli funksiya
func display(number: Int) {
print("Integer son:", number)
}
// bitta parametr bilan chaqirish
display(number: 5)
// ikki parametr bilan chaqirish
display(number1: 6, number2: 8)
Natija:
Integer son: 5
1-Integer: 6 va 2-Integer: 8
Bu yerda display() funksiyasi parametrlar soni bo‘yicha overloaded qilingan.
Argumentlar soniga qarab tegishli funksiya tanlanadi.

Misol 3: Argument Label orqali Overloading
func display(person1 age: Int) {
print("1-shaxs yoshi:", age)
}
func display(person2 age: Int) {
print("2-shaxs yoshi:", age)
}
display(person1: 25)
display(person2: 38)
Natija:
1-shaxs yoshi: 25
2-shaxs yoshi: 38
Bu misolda ikkita display() funksiyasi:
- parametrlar soni bir xil
- parametrlar turi bir xil
Lekin baribir overloaded qilingan, chunki Swift’da argument label orqali ham overloading mumkin.
Bu yerda:
person1— birinchi funksiya uchun labelperson2— ikkinchi funksiya uchun label
Funksiya chaqirilganda ishlatilgan labelga qarab tegishli funksiya tanlanadi.