DEV Community

Aydın Yakar
Aydın Yakar

Posted on • Edited on

3

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.

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay