0Pricing
Go Academy · Ders

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.

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