# Go Harita
Go haritalar (maps) dersini işliyoruz.
Harita, anahtar ve değer çiftlerinden oluşan bir koleksiyondur. Dizilerde verileri sadece index numaralarıyla tutabilirken
map
kullanımında indexler yerine anahtar değerler atayabiliriz.Harita (map) veri tipini kullanabilmek için önce haritayı oluşturmalı, ardından başlatmalıyız.
var x map[string]int // map oluşturma
x = make(map[string]int) // map başlatma
Bir
map
oluşturduğunuzda öntanımlı olarak nil
olur. nil
, pointers, interfaces, maps, slices, channels ve function veri tiplerindeki boş değeri temsil eder. Tıpkı integer bir değişkenin öntanımlı değerinin 0 olması gibi. Bunun için oluşturduğumuz haritayı başlatmamız gerekir.Örnek olarak anahtar tipini
string
, değer tipini int
ayarladıktan sonra artık elemanları oluşturmaya başlayabilirsiniz. x["sayi"] = 10
x["adet"] = 55
fmt.Println(x) // map[adet:55 sayi:10]
Gördüğünüz gibi dizilerden farklı olarak indexler yerine istediğimiz değerleri kullanarak key oluşturabiliyoruz.
Anahtar ve değer çiftiyle oluşturduğumuz haritalarda yer alan elemanlara sadece anahtarı kullanarak erişebiliriz.
package main
import (
"fmt"
)
func main() {
var ogrenci map[string]string
ogrenci = make(map[string]string)
ogrenci["ad"] = "Deniz"
ogrenci["soyad"] = "Barış"
ogrenci["cinsiyet"] = "E"
fmt.Println(ogrenci["ad"]) // Deniz
fmt.Println(ogrenci["soyad"]) // Barış
fmt.Println(ogrenci["cinsiyet"]) // E
}
Haritadan bir elemanı silmek için delete() fonksiyonunu anahtar değer ile beraber kullanabilirsiniz.
var ogrenci map[string]string
ogrenci = make(map[string]string)
ogrenci["ad"] = "Deniz"
ogrenci["soyad"] = "Barış"
ogrenci["cinsiyet"] = "E"
delete(ogrenci,"cinsiyet")
fmt.Println(ogrenci) // map[ad:Deniz soyad:Barış]
Haritada anahtarın olup olmadığını kontrol edebiliriz. Eğer ilgili anahtara sahip bir değer varsa true, yoksa false döner.
var ogrenci map[string]string
ogrenci = make(map[string]string)
ogrenci["ad"] = "Deniz"
ogrenci["soyad"] = "Barış"
deger1, kontrol1 := ogrenci["cinsiyet"]
deger2, kontrol2 := ogrenci["ad"]
fmt.Println("Mevcut mu?",kontrol1,"Değeri:",deger1)
// Mevcut mu? false Değeri:
fmt.Println("Mevcut mu?",kontrol2,"Değeri:",deger2)
// Mevcut mu? true Değeri: Deniz
Last modified 2yr ago