Published on

Swiftda funksiyalar

Authors

Funksiya — bu muayyan vazifani bajaradigan kod blokidir.

Masalan, biz doira chizadigan va uni ranglaydigan dastur yaratmoqchimiz. Bunda ikkita funksiya yaratishimiz mumkin:

  • doira chizish funksiyasi
  • doirani ranglash funksiyasi

Demak, funksiyalar yordamida dasturimizni kichik bo‘laklarga ajratamiz, bu esa kodni qayta ishlatish va tushunishni osonlashtiradi.

Swiftda funksiyalar ikki xil bo‘ladi:

  • Foydalanuvchi tomonidan yaratiladigan funksiyalar — o‘zimiz yaratadigan funksiyalar.
  • Standart kutubxona funksiyalari — Swift ichida oldindan mavjud funksiyalar.

Keling, avval o‘zimiz yaratadigan funksiyalarni ko‘rib chiqamiz.

Funksiyani e’lon qilish

Funksiya e’loni quyidagicha:

func functionName(parameters) -> returnType {
  // funksiya tanasi
}

Bu yerda:

  • func — funksiya yaratish uchun kalit so‘z
  • functionName — funksiyaning nomi
  • parameters — funksiyaga uzatiladigan qiymatlar
  • returnType — funksiyaning qaytaradigan qiymat turi

Misol:

func greet() {
  print("Hello World!")
}

Bu yerda greet() nomli funksiya yaratildi. U faqat Hello World! matnini chiqaradi.

Bu funksiyaning parametrlari ham, qaytarish turi ham yo‘q. Bu haqida keyinroq gaplashamiz.

Funksiyani chaqarish

Yuqoridagi misolda biz greet() funksiyasini yaratdik:

func greet() {
  print("Hello World!")
}

Endi uni ishlatish uchun chaqiramiz:

// funksiyani chaqirish
greet()

Misol:

// funksiya e’loni
func greet() {
  // "Hello World!" matnini chiqarish
  print("Hello World!")
}

// funksiya chaqirildi
greet()

print("Outside function")

Natija:

Hello World!
Outside function
func

Dastur qanday ishlaydi:

  1. Funksiya chaqirilganda, boshqaruv funksiyaga o‘tadi.
  2. Funksiya ichidagi barcha kodlar bajariladi.
  3. Funksiya tugagach, boshqaruv keyingi qatorga qaytadi.

Funksiya parametrlari

Funksiya parametrlar qabul qilishi mumkin. Parametr — funksiyaga uzatiladigan qiymat.

Misol:

// ikki parametrli funksiya
func addNumbers(num1: Int, num2: Int) {
  var sum = num1 + num2
  print("Sum:", sum)
}

// parametrsiz funksiya
func addNumbers() {
  // kod
}

Agar parametrli funksiya yaratsak, uni chaqirganda qiymatlar berishimiz shart:

// ikkita qiymat bilan chaqirish
addNumbers(num1: 3, num2: 4)

// qiymatsiz chaqirish
addNumbers()

Bu yerda num1: 3 va num2: 4 tegishli parametrlarni qiymatlar bilan to‘ldiradi.

Misol:

// ikki sonni qo‘shadigan funksiya
func addNumbers(num1: Int, num2: Int) {
  var sum = num1 + num2
  print("Sum:", sum)
}

// ikki qiymat bilan chaqirish
addNumbers(num1: 3, num2: 4)

Natija:

Sum: 7
func

Parametrlarning ma’lumot turi chaqirishdagi qiymat turi bilan bir xil bo‘lishi kerak.

Funksiya qiymat qaytarish turi (Return Type)

Funksiya qiymat qaytarishi yoki qaytarmasligi mumkin.

Agar funksiyadan qiymat qaytarishni istasak, return operatoridan foydalanamiz:

func addNumbers() -> Int {
  ...
  return sum
}

Bu yerda funksiya sum qiymatini qaytaryapti. -> Int esa funksiyaning qaytarish turi Int ekanini bildiradi.

Misol:

// funksiya e’loni
func findSquare(num: Int) -> Int {
  var result = num * num
  return result
}

// funksiya chaqirish
var square = findSquare(num: 3)

print("Square:", square)

Natija:

Square: 9
Bu yerda funksiya berilgan sonning kvadratini qaytarmoqda. func

Misol:

// ikki sonni qo‘shadigan funksiya
func addNumbers(num1: Int, num2: Int) -> Int {
  var sum = num1 + num2
  return sum
}

// qiymat berib chaqirish
var result = addNumbers(num1: 3, num2: 4)

print("Sum:", result)

Natija:

Sum = 7

Swiftda kutubxona funksiyalari

Swiftda oldindan yaratilgan funksiyalar mavjud, masalan:

  • print() — matn chiqaradi
  • sqrt() — ildiz hisoblaydi
  • pow() — darajaga oshiradi

Bu funksiyalar mos kutubxonalar ichida bo‘ladi.

Masalan, sqrt() va pow() — Foundation kutubxonasi ichida.

Misol:

import Foundation

// sqrt() — ildiz hisoblash
var squareRoot = sqrt(25)
print("Square Root of 25 is", squareRoot)

// pow() — daraja hisoblash
var power = pow(2, 3)
print("2 to the power 3 is", power)

Natija:

Square Root of 25 is 5.0
2 to the power 3 is 8

sqrt() va pow() ishlashi uchun:

import Foundation

kiritildi.

Funksiya ishlatishning afzalliklari

1. Kodni qayta ishlatish

Funksiyani bir necha bor chaqirish mumkin:

// funksiya e’loni
func getSquare(num: Int) -> Int {
  return num * num
}

for i in 1...3 {
  // funksiya chaqirish
  var result = getSquare(num: i)
  print("Square of \(i) =", result)
}

Natija:

Square of 1 = 1
Square of 2 = 4
Square of 3 = 9

Bu yerda bir xil funksiya bir necha marta ishlatilgan.

2. Kodni tushunarli qilish

Funksiyalar kodni bo‘laklarga ajratadi, bu esa dastur o‘qilishini yengillashtiradi.