0Pricing
Go Academy · Ders

Koleksiyonları range ile Yineleme

Dilimler, eşlemeler ve dizeler üzerinde range kullanma

Koleksiyonları range ile Yineleme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. 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.

range Nedir?

range, diziler, dilimler, eşlemeler, dizeler ve kanallar üzerinde yineleme yapan özel bir for döngüsü biçimidir. Her yinelemede bir indeks (veya anahtar) ve bir değer döndürür.

Bir Dilim Üzerinde Aralık Döngüsü

Dizini ve öğenin bir kopyasını döndürür:

package main
import "fmt"

func main() {
    fruits := []string{"apple", "banana", "cherry"}
    for i, fruit := range fruits {
        fmt.Printf("%d: %s\n", i, fruit)
    }
}

Bir Dizi Üzerinde Aralık Döngüsü

Dilimlerle aynı şekilde çalışır. Dizi öğeleri her yinelemede kopyalanır:

package main
import "fmt"

func main() {
    nums := [3]int{10, 20, 30}
    for _, v := range nums {
        fmt.Println(v)
    }
}

Bir Eşleme Üzerinde Aralık Döngüsü

Anahtarı ve değeri rastgele sırada döndürür:

package main
import "fmt"

func main() {
    capitals := map[string]string{
        "France": "Paris",
        "Japan":  "Tokyo",
    }
    for country, city := range capitals {
        fmt.Printf("%s -> %s\n", country, city)
    }
}

Bir Dize Üzerinde Aralık Döngüsü

Baytlar yerine Unicode kod noktaları (rune) üzerinde yineleme yapar. Dizin, karakterin başlangıcının bayt konumudur:

package main
import "fmt"

func main() {
    for i, r := range "héllo" {
        fmt.Printf("%d: %c\n", i, r)
    }
}

Dizini Yok Sayma

Yalnızca değerlere ihtiyacınız olduğunda dizini yok saymak için _ kullanınız:

package main
import "fmt"

func main() {
    total := 0
    for _, v := range []int{1, 2, 3, 4, 5} {
        total += v
    }
    fmt.Println(total) // 15
}

Yalnızca Dizinle Aralık Döngüsü

Değer belirtilmezse yalnızca dizin elde edilir. Yerinde değiştirme için kullanışlıdır:

package main
import "fmt"

func main() {
    s := []int{1, 2, 3}
    for i := range s {
        s[i] *= 2
    }
    fmt.Println(s) // [2 4 6]
}

Bir Kanal Üzerinde Aralık Döngüsü

range, kanal kapatılana kadar kanaldan okur:

package main
import "fmt"

func main() {
    ch := make(chan int, 3)
    ch <- 1; ch <- 2; ch <- 3
    close(ch)
    for v := range ch {
        fmt.Println(v)
    }
}

Döngü Değişkeni Tuzağı

Aralık değişkeni her yinelemede yeniden kullanılır; bir eş yordamda veya kapanışta değişkenin adresini yakalamak klasik bir hatadır:

package main
import "fmt"

func main() {
    nums := []int{1, 2, 3}
    funcs := make([]func(), 3)
    for i, v := range nums {
        v := v // shadow with a copy
        funcs[i] = func() { fmt.Println(v) }
    }
    for _, f := range funcs { f() } // 1 2 3
}

Dilim Öğelerini Değiştirme

Aralık değeri bir kopyadır. Değiştirmek için dizini kullanınız:

package main
import "fmt"

func main() {
    s := []int{10, 20, 30}
    for i := range s {
        s[i]++
    }
    fmt.Println(s) // [11 21 31]
}

Kısa Kontrol

Bir dize üzerinde aralık döngüsü kullanırken değer değişkeninin türü nedir?

Özet: Aralık Döngüsü

Temel çıkarımlar:

  • range; dilimler, diziler, eşlemeler, dizeler ve kanallar üzerinde çalışır
  • (dizin, değer) döndürür; bunlardan biri _ ile yok sayılabilir
  • Aralık değerleri kopyadır; değişiklik dizin üzerinden yapılır
  • Dizeler bayt değil, karakter kod noktaları üretir
  • Eşleme üzerinde yineleme sırası rastgeledir

Alıştırma Görevi

Bir map[string]int içindeki tüm değerlerin toplamını hesaplamak ve her girdiyi ve toplamı yazdırmak için range kullanınız.

Sıkça Sorulan Sorular

“Koleksiyonları range ile Yineleme” dersi ücretsiz mi?

Evet — “Koleksiyonları range ile Yineleme” 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.

“Koleksiyonları range ile Yineleme” dersinde ne öğreneceğim?

Dilimler, eşlemeler ve dizeler üzerinde range kullanma 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 4. dersidir.

“Koleksiyonları range ile Yineleme” 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

  1. Diziler: Sabit Uzunluklu Koleksiyonlar
  2. Dilimler: Dinamik Listeler
  3. Eşlemeler: Anahtar-Değer Depoları
  4. Koleksiyonları range ile Yineleme
← Go Academy Sayfasına Dön