DEV Community

Aydın Yakar
Aydın Yakar

Posted 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.

Discussion (0)