0Pricing
Go Academy · Ders

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 range sırası kasıtlı olarak rastgeleleştirilir
  • Belirlenebilir bir çıktı için anahtarları toplayın, sıralayın, sonra üzerlerinde dolaşın
  • range sı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

  1. Map İç Yapısı
  2. Varlık Denetimi
  3. Küme Olarak Map'ler
  4. Yineleme ve Sıralama
← Go Academy Sayfasına Dön