Birden Çok Dönüş Değeri
Demetleri ve error örüntüsünü döndürme
Birden Çok Dönüş Değeri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Birden Çok Dönüş Neden Kullanılır?
Go işlevleri birden çok değer döndürebilir; böylece çıktı parametrelerine veya özel durumlara olan ihtiyaç ortadan kalkar. En yaygın kalıp bir sonuç ile bir hata döndürmektir:
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}Birden Çok Dönüşü Ele Alma
Çağıranlar tüm dönüş değerlerini bir demet olarak alır. İhtiyacınız olmayan değerleri atmak için _ kullanın:
result, err := divide(10, 3)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
value, _ := divide(8, 2) // discard errorAdlandırılmış Dönüş Değerleri
Dönüş değerleri adlandırılabilir ve böylece işlev içinde değişkenlere dönüştürülebilir:
func minMax(nums []int) (min, max int) {
min, max = nums[0], nums[0]
for _, n := range nums[1:] {
if n < min { min = n }
if n > max { max = n }
}
return // naked return
}Çıplak Dönüşler
Bağımsız değişken içermeyen bir return, adlandırılmış dönüş değişkenlerini döndürür. Bunu yalnızca adları kendi açıklamasını yapan kısa işlevlerde ve ölçülü biçimde kullanınız:
- Kısa işlevler: kabul edilebilir
- Uzun işlevler: okunabilirliği azaltır; açık dönüşleri tercih ediniz
(değer, hata) Deseni
Go'da kanonik hata işleme deseni:
func readConfig(path string) (Config, error) {
data, err := os.ReadFile(path)
if err != nil {
return Config{}, fmt.Errorf("read config: %w", err)
}
var cfg Config
return cfg, json.Unmarshal(data, &cfg)
}Hataları Asla Yok Saymayınız
Hataları _ ile yok saymak tehlikelidir. En iyi uygulamalar:
- Yok saymamak için özel bir nedeniniz olmadıkça her hatayı kontrol ediniz
fmt.Errorf("op: %w", err)kullanarak hataları bağlam bilgisiyle sarmalayınızlog.Fatalveya panic'i derinlerdeki kitaplıklarda değil, yalnızca program sınırlarında kullanınız
Üç Değer Döndüren İşlevler
Bazı işlevler, daha az yaygın olsa da üç değer döndürür:
func parseIPPort(s string) (ip string, port int, err error) {
// ... parsing logic
return
}Yapıların ve Birden Çok Değerin Döndürülmesi
Ne zaman yapı, ne zaman birden çok değer döndürülmeli:
- Birbiriyle güçlü biçimde ilişkili 2-3 değer: birden çok dönüş uygundur
- 4 veya daha fazla değer ya da isteğe bağlı alanlar: yapı kullanınız
- (değer, hata) deseni: her zaman birden çok dönüş kullanınız
Mevcut Değişkenlere Atama
Çağrının dışında zaten bildirilmiş değişkenlere atama yaparken := yerine = kullanınız:
var cfg Config
var err error
cfg, err = loadConfig()
if err != nil { ... }Yöntem Zincirlemede Birden Çok Dönüş
Go, birden çok dönüş değerinde doğrudan yöntem zincirlemeyi desteklemez (Rust'taki Result.map'in aksine). Her adımda hataları işlemek için ara değişkenler kullanınız:
data, err := fetchData(url)
if err != nil { return err }
parsed, err := parseData(data)
if err != nil { return err }
return save(parsed)Hızlı Kontrol
Go'da çıplak dönüş ne yapar?
Özet: Birden Çok Dönüş Değeri
Birden çok dönüş, Go'nun temel deyimlerinden biridir:
- İşlevler, parantez içindeki bir listede birden çok değer döndürebilir
- (değer, hata) deseni her yerde kullanılır; hatayı her zaman kontrol ediniz
- Adlandırılmış dönüş değişkenleri çıplak dönüşleri mümkün kılar; ölçülü kullanınız
- İhtiyacınız olmayan değerleri yok saymak için
_kullanınız - Daha temiz arayüzler için çıkış parametreleri yerine birden çok dönüşü tercih ediniz
Sıradaki konu: değişken sayıda bağımsız değişken alan işlevler.
Sıkça Sorulan Sorular
“Birden Çok Dönüş Değeri” dersi ücretsiz mi?
Evet — “Birden Çok Dönüş Değeri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Birden Çok Dönüş Değeri” dersinde ne öğreneceğim?
Demetleri ve error örüntüsünü döndürme Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Birden Çok Dönüş Değeri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- İşlev Temelleri ve İmzalar
- Birden Çok Dönüş Değeri
- Değişken Sayıda Bağımsız Değer Alan İşlevler
- defer, Anonim İşlevler ve Kapanışlar