Sobes.tech
Junior — Middle

Go dilində funksiyaların parametrlərində standart dəyərlərin ötürülməsi necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, bəzi digər dillərdə (məsələn, Python və ya C++ kimi) mövcud olan standart dəyərlərlə funksiyaların parametrlərinə dəstək yoxdur. Oxşar davranışı həyata keçirmək üçün adətən aşağıdakı yanaşmalardan biri istifadə olunur:

  1. Funksiyaların dəyişkən parametrlər vasitəsilə yüklənməsi — funksiyaya dəyişkən sayda arqumentlər göndərmək və daxildə onların olub-olmadığını yoxlamaq:
func greet(name string, messages ...string) {
    msg := "Hello"
    if len(messages) > 0 {
        msg = messages[0]
    }
    fmt.Println(msg, name)
}

// Çağırışlar:
greet("Alice")           // Hello Alice
greet("Bob", "Hi")     // Hi Bob
  1. Konfiqurasiyalar ilə strukturların istifadəsi — funksiyaya parametrli struktur göndərmək və yaradılarkən standart dəyərləri təyin etmək:
type Config struct {
    Timeout int
}

func doSomething(cfg Config) {
    if cfg.Timeout == 0 {
        cfg.Timeout = 30 // standart dəyər
    }
    // ...
}

// Çağırış:
doSomething(Config{})
  1. Fərqli parametr dəstləri ilə köməkçi konstruktiv funksiyalar yaratmaq.

Bu yolla, Go dilində standart dəyərlər funksiyanın içində açıq məntiq və ya strukturlar vasitəsilə həyata keçirilir, dilin sintaksisi ilə deyil.