Goda funksiyalar
Kirish
Go tilida funksiya — bu takrorlanadigan kod bloklarini guruhlash va chaqirish imkonini beruvchi muhim tushuncha. Funksiyalar kodni modular qilishga va qayta ishlatishga yordam beradi.
Go tilida funksiyalar quyidagicha e'lon qilinadi:
Keling, Go tilidagi funksiyalar bilan batafsil tanishamiz!
Oddiy funksiya
Go tilida oddiy funksiya yaratish va chaqirish juda oddiy.
package main
import "fmt"
func hello() {
fmt.Println("Salom, Go!")
}
func main() {
hello() // Funksiyani chaqirish
}
Natija:
Parametrli funksiya
Funksiyaga argumentlar berish mumkin.
package main
import "fmt"
func greet(name string) {
fmt.Println("Salom,", name, "!")
}
func main() {
greet("Ali")
greet("Vali")
}
Natija:
Qiymatga qaytaruvchi funksiya
Funksiya qiymat qaytarishi mumkin. return
operatori yordamida bu amalga oshiriladi.
package main
import "fmt"
func kvadrat(x int) int {
return x * x
}
func main() {
natija := kvadrat(5)
fmt.Println("5 ning kvadrati:", natija)
}
Natija:
Ikki yoki ko'p qiymat qaytaruvchi funksiya
Go tilida funksiya bir nechta qiymat qaytarishi mumkin.
package main
import "fmt"
func hisobla(a int, b int) (int, int) {
return a + b, a * b
}
func main() {
yigindi, ko‘paytma := hisobla(4, 5)
fmt.Println("Yig‘indi:", yigindi)
fmt.Println("Ko‘paytma:", ko‘paytma)
}
Natija:
Anonim (nomsiz) funksiyalar
Anonim funksiyalar bevosita chaqirilishi yoki o‘zgaruvchiga tayinlanishi mumkin.
package main
import "fmt"
func main() {
kvadrat := func(x int) int {
return x * x
}
fmt.Println("7 ning kvadrati:", kvadrat(7))
}
Natija:
Variadic funksiya (o'zgaruvchan parametr)
Agar parametrlar soni oldindan noma'lum bo‘lsa, ...
sintaksisidan foydalanamiz.
package main
import "fmt"
func yigindi(nums ...int) int {
sum := 0
for _, num := range nums {
sum += num
}
return sum
}
func main() {
fmt.Println("Natija:", yigindi(1, 2, 3, 4, 5))
}
Natija:
Rekursiv funksiya (o'zini o'zini chaqiruvchi funksiya)
Rekursiya orqali masalan, faktorialni hisoblash mumkin.
package main
import "fmt"
func faktorial(n int) int {
if n == 0 {
return 1
}
return n * faktorial(n-1)
}
func main() {
fmt.Println("5! =", faktorial(5))
}
Natija:
Rekursiv funksiyaga misollar:
Sonlar yig'indisini hisoblash
package main
import "fmt"
func sum(n int) int {
if (n == 0) || (n == 1) {
return 1
}
return n + sum(n - 1)
}
func main(){
fmt.Println(sum(9))
}
Go tilida funksiyalar quyidagi asosiy turlarga bo‘linadi:
- Oddiy funksiyalar
- Parametrli funksiyalar
- Qiymat qaytaruvchi funksiyalar
- Ikki yoki ko‘p qiymat qaytaruvchi funksiyalar
- Anonim funksiyalar
- Variadic funksiyalar
- Rekursiv funksiyalar
- Funksiya pointerlari