DEV Community

Aydın Yakar
Aydın Yakar

Posted on • Edited on

Golang 101: Harita (Map)

Haritalar (map) diziden (array) ve kesitten (slice) farklı olarak degisken["anahtar"] = değer şeklinde anahtar (key) verisinin türünü de belirlemenize imkan tanır. Böylelikle string bir anahtar tanımlayabilirsiniz. Hatırlarsanız dizi ve kesitte degisken[indis]=deger şeklinde anahtar yerine indis (index) numerik ve sıralı olarak oluşturuluyordu.

package main import "fmt" func main() { // Boş Map Tanımlama h := make(map[string]int) // Değer Atama h["k1"] = 7 h["k2"] = 13 fmt.Println("Harita:", h) x := h["k1"] fmt.Println("x: ", x) fmt.Println("Boyut:", len(h)) // Öğeyi Silme delete(h, "k2") fmt.Println("Yeni Harita:", h) fmt.Println("Yeni Boyut:", len(h)) _, prs := h["k2"] fmt.Println("Mevcut mu:", prs) // Tanımlama ve Değer Atama n := map[string]int{"go": 1, "lang": 2} fmt.Println("Harita2:", n) } 
Enter fullscreen mode Exit fullscreen mode
Harita: map[k1:7 k2:13] x: 7 Boyut: 2 Yeni Harita: map[k1:7] Yeni Boyut: 1 Mevcut mu: false Harita2: map[go:1 lang:2] 
Enter fullscreen mode Exit fullscreen mode

çalıştır!

Boş Map Tanımlama

 h := make(map[string]int) 
Enter fullscreen mode Exit fullscreen mode

Boş bir map tanımlamak için slice'da olduğu gibi make() fonksiyonu kullanılır. Örnekte anahtar (key) değeri string, değer (value) türü ise integer'dır.

Değer Atama

 h["k1"] = 7 h["k2"] = 13 fmt.Println("Harita:", h) x := h["k1"] fmt.Println("x: ", x) fmt.Println("Boyut:", len(h)) 
Enter fullscreen mode Exit fullscreen mode

Oluşturulan değişkenin anahtar değerlerinin (k1, k2) ve değerlerinin (7, 13) atanması görülmektedir. Akabinde ise x değişkenine k1 anahtarına sahip değişkenin değerini atamakta ve son olarak da len ile mevcut eleman sayısı ekrana yazdırılmaktadır.

Öğeyi Silme

 delete(h, "k2") fmt.Println("Yeni Harita:", h) fmt.Println("Yeni Boyut:", len(h)) _, prs := h["k2"] fmt.Println("Mevcut mu:", prs) 
Enter fullscreen mode Exit fullscreen mode

Map'ten delete() fonksiyonu ile belirtilen anahtarı ve değerini silebilirsiniz. Silinen anahtarı kontrol için de _, prs := h["k2"] ile değerini (örnekte: 0) ve varlık durumu bool olarak alabilirsiniz. Böylelikle değerin varlığını kontrol edebilirsiniz. Örnekte silinen anahtarın değeri olmadığından 0 alırken varlık durumu false olarak döner.

Golang'de _ (alt çizgi) özel bir boş tanımlayıcıdır. Herhangi bir işlemde kullanılmayacak değerler bu değişkene atanır.

Tanımlama ve Değer Atama

 n := map[string]int{"go": 1, "lang": 2} 
Enter fullscreen mode Exit fullscreen mode

Map tanımlamlarken değer de yukarıdaki örnekte olduğu gibi atanabilir.

Top comments (0)