Sobes.tech
Junior — Middle

Bir fonksiyona argüman değerlerinin aktarımını nasıl gerçekleştirirsiniz, eğer parametreler çağrı sırasında açıkça geçirilmediyse?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, bazı diğer dillerde olduğu gibi varsayılan parametre desteği yoktur. Parametreler açıkça iletilmediğinde argüman değerlerinin iletimini uygulamak için genellikle aşağıdaki yaklaşımlardan biri kullanılır:

  1. Değişken parametrelerin kullanımı (...) — rastgele sayıda argüman iletmeye izin verir ve fonksiyon içinde bunların iletilip iletilmediğini kontrol edip gerekirse varsayılan değerler ayarlayabilirsiniz.
func örnek(args ...int) {
    var val int
    if len(args) > 0 {
        val = args[0]
    } else {
        val = 42 // varsayılan değer
    }
    fmt.Println(val)
}
  1. Ayarlarla yapı ile iletim — parametreleri içeren bir yapı oluşturulur ve alanlar doldurulmamışsa, fonksiyon içinde varsayılan değerler atanır.
type Config struct {
    Param int
}

func örnek(cfg Config) {
    if cfg.Param == 0 {
        cfg.Param = 42 // varsayılan değer
    }
    fmt.Println(cfg.Param)
}
  1. İşaretçiler ve nil kontrolü kullanımı — parametre işaretçi olarak iletilmişse, iletildiğini kontrol edip varsayılan bir değer ayarlayabilirsiniz.

Bu şekilde, Go'da genellikle varsayılan parametre davranışını, fonksiyon içinde ek kontroller yaparak uygularız çünkü varsayılan parametreler için sözdizimi yoktur.