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
- Diziler: Sabit Uzunluklu Koleksiyonlar
- Dilimler: Dinamik Listeler
- Eşlemeler: Anahtar-Değer Depoları
- Koleksiyonları range ile Yineleme