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:
- 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
- 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{})
- 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.