Map İç Yapısı
Map'lerin verileri nasıl depoladığını öğrenin
Map İç Yapısı, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. 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 Nedir
Bir harita, anahtar-değer çiftlerini saklar. Her anahtar tek bir değere eşlenir ve aramalar ortalama olarak çok hızlıdır.
Go'da map[KeyType]ValueType yazarsınız.
package main
import "fmt"
func main() {
ages := map[string]int{"Ann": 30, "Bob": 25}
fmt.Println(ages["Ann"])
}Alttaki Karma Tabloları
Go haritaları karma tabloları olarak uygulanır. Bir karma işlevi her anahtarı, değerin bulunduğu kovana işaret eden bir sayıya dönüştürür.
Kovalar
Harita girdileri kovalarda saklar. Her kovan birkaç anahtar-değer çifti tutar. Bir anahtarın karması, anahtarın gideceği kovayı belirler; bu da ortalama O(1) sürede hızlı aramalar sağlar.
Oluşturma
make ile boş bir harita oluşturabilirsiniz. İsteğe bağlı olarak alanı önceden ayırmak için bir boyut ipucu verebilirsiniz.
package main
import "fmt"
func main() {
scores := make(map[string]int)
scores["x"] = 10
fmt.Println(scores)
}Boş Haritalar
Başlatılmadan bildirilen bir harita nil değerindedir. Boş bir haritadan okuyabilirsiniz (sıfır değerlerini alırsınız), ancak ona yazmak paniğe yol açar. Yazmadan önce her zaman başlatınız.
package main
import "fmt"
func main() {
var m map[string]int
fmt.Println(m == nil)
fmt.Println(m["missing"])
}Ekleme ve Güncelleme
Bir anahtara değer atamak, anahtar yeniyse onu ekler; mevcutsa değerin üzerine yazar.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1}
m["b"] = 2
m["a"] = 99
fmt.Println(m)
}Anahtarları Silme
Yerleşik delete işlevi bir anahtarı kaldırır. Eksik bir anahtarı silmek güvenli bir işlem olup hiçbir etki oluşturmaz.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
delete(m, "a")
fmt.Println(m)
}Haritanın Uzunluğu
len, haritada o anda bulunan anahtar-değer çiftlerinin sayısını döndürür.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
fmt.Println(len(m))
}Haritalar Otomatik Olarak Büyür
Girdiler ekledikçe Go, alttaki tabloyu büyütür ve anahtarları yeni kovalara yeniden dağıtabilir. Bu işlem otomatik olarak gerçekleşir; bu nedenle kapasiteyi elle yönetmezsiniz.
İzin Verilen Anahtar Türleri
Anahtarlar karşılaştırılabilir olmalıdır: == işleciyle kullanabileceğiniz türler. Dizeler, sayılar, mantıksal değerler ve karşılaştırılabilir alanlardan oluşan yapılar kullanılabilir. Dilimler ve haritalar anahtar olamaz.
package main
import "fmt"
func main() {
type Point struct{ X, Y int }
m := map[Point]string{{1, 2}: "origin-ish"}
fmt.Println(m[Point{1, 2}])
}Başvuru Semantiği
Bir harita değeri, temel veriye yönelik bir başvurudur. Bir haritayı işleve geçirmek, işlevin aynı haritayı değiştirmesini sağlar; işaretçiye gerek yoktur.
package main
import "fmt"
func addOne(m map[string]int) {
m["count"]++
}
func main() {
m := map[string]int{"count": 0}
addOne(m)
fmt.Println(m)
}Hızlı Denetim
Boş bir haritaya anahtar yazmayı denerseniz ne olur?
Özet
Harita iç yapısı:
- Haritalar, kovalara sahip karma tablolarıdır
- Arama, ekleme ve silme işlemleri ortalama O(1) sürededir
- Anahtarlar karşılaştırılabilir olmalıdır; boş haritalara yazmak paniğe yol açar
- Haritalar başvuru semantiğine sahiptir
Sıkça Sorulan Sorular
“Map İç Yapısı” dersi ücretsiz mi?
Evet — “Map İç Yapısı” 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.
“Map İç Yapısı” dersinde ne öğreneceğim?
Map'lerin verileri nasıl depoladığını öğrenin 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 1. dersidir.
“Map İç Yapısı” 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.