Yineleme ve Sıralama
Rastgele map sırasını işleyin
Yineleme ve Sıralama, 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.
Harita Üzerinde Dolaşma
Bir harita üzerinde dolaşmak ve her anahtarı ve değeri almak için range kullanınız.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
for k, v := range m {
fmt.Println(k, v)
}
}Sıra Rastgeleleştirilir
Harita üzerinde dolaşma sırası garanti edilmez. Go bu sırayı kasıtlı olarak rastgeleleştirir. Aynı döngüyü iki kez çalıştırmak, anahtarları farklı sıralarda yazdırabilir.
Neden Rastgeleleştirilir
Go, geliştiricilerin yanlışlıkla belirli bir sıraya güvenmemesi için sırayı bilerek rastgeleleştirir. Harita sırasına bağlı olan kod, ortaya çıkmayı bekleyen bir hatadır.
Yalnızca Anahtarlar
Yalnızca anahtarlar üzerinde dolaşmak için değeri belirtmeyiniz.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k := range m {
fmt.Println(k)
}
}Anahtarları Toplama
Kararlı bir sonuç elde etmek için önce anahtarları bir dilimde toplayınız.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
fmt.Println("collected", len(keys), "keys")
}Anahtarları Sıralama
Toplanan anahtarları sıralayın, ardından dilim üzerinde dolaşın. Bu, belirlenebilir ve sıralı bir çıktı sağlar.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[string]int{"c": 3, "a": 1, "b": 2}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
fmt.Println(k, m[k])
}
}Sıralı Çıktı Kalıbı
Topla, sonra sırala kalıbı, bir haritayı öngörülebilir sırada yazdırmanın standart yoludur. Çıktı sırası önemli olduğunda anahtarları her zaman sıralayınız.
Tamsayı Anahtarlarını Sıralama
Aynı yaklaşım, sayısal anahtarlar için sort.Ints ile de çalışır.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[int]string{3: "c", 1: "a", 2: "b"}
keys := []int{}
for k := range m {
keys = append(keys, k)
}
sort.Ints(keys)
for _, k := range keys {
fmt.Println(k, m[k])
}
}Dolaşma Sırasında Değiştirme
Bir range döngüsü sırasında anahtarları güvenle silebilirsiniz. Ancak dolaşma sırasında anahtar eklemek tanımsız davranışa yol açar; yeni girdiler görünebilir de görünmeyebilir de.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k := range m {
if k == "b" {
delete(m, k)
}
}
fmt.Println(len(m))
}Değere Göre Sıralama
Anahtar yerine değere göre sıralamak için anahtarları toplayın, ardından harita değerlerini okuyan bir karşılaştırmayla sıralayın.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[string]int{"a": 3, "b": 1, "c": 2}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
sort.Slice(keys, func(i, j int) bool {
return m[keys[i]] < m[keys[j]]
})
for _, k := range keys {
fmt.Println(k, m[k])
}
}Sıraya Asla Güvenmeyiniz
Temel çıkarım: Harita üzerinde dolaşma sırasını asla varsaymayınız. Sıra önemliyse anahtarları bir dilime çıkarın ve açıkça sıralayın.
Hızlı Denetim
Bir haritanın girdilerini anahtarlarına göre alfabetik sırada yazdırmanız gerekiyor. Doğru yaklaşım nedir?
Özet
Dolaşma ve sıralama:
- Harita
rangesırası kasıtlı olarak rastgeleleştirilir - Belirlenebilir bir çıktı için anahtarları toplayın, sıralayın, sonra üzerlerinde dolaşın
rangesırasında silmek güvenlidir; eklemek tanımsızdır
Sıkça Sorulan Sorular
“Yineleme ve Sıralama” dersi ücretsiz mi?
Evet — “Yineleme ve Sıralama” 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.
“Yineleme ve Sıralama” dersinde ne öğreneceğim?
Rastgele map sırasını işleyin 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.
“Yineleme ve Sıralama” 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
- Map İç Yapısı
- Varlık Denetimi
- Küme Olarak Map'ler
- Yineleme ve Sıralama