Sobes.tech
Junior — Middle

Go dilinde fonksiyon parametrelerinde varsayılan değerlerin iletimi nasıl uygulanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, bazı diğer dillerde (örneğin Python veya C++ gibi) bulunan varsayılan değerlerle fonksiyon parametreleri desteği yerleşik değildir. Benzer bir davranışı uygulamak için genellikle aşağıdaki yaklaşımlardan biri kullanılır:

  1. Fonksiyonların değişken parametreler aracılığıyla aşırı yüklenmesi — fonksiyona değişken sayıda argüman göndermek ve içerde var olup olmadıklarını kontrol etmek:
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. Ayarlarla yapıların kullanımı — fonksiyona parametreleri içeren bir yapı göndermek ve oluşturulurken varsayılan değerler belirlemek:
type Config struct {
    Timeout int
}

func doSomething(cfg Config) {
    if cfg.Timeout == 0 {
        cfg.Timeout = 30 // varsayılan değer
    }
    // ...
}

// Çağrı:
doSomething(Config{})
  1. Farklı parametre setleriyle yardımcı yapıcı fonksiyonlar oluşturmak.

Bu şekilde, Go dilinde varsayılan değerler, fonksiyon içinde açık mantık veya yapılar aracılığıyla uygulanır, dilin sözdizimiyle değil.