Go programlama dilinde eşlemler anahtarları değerlere eşlemeye yarar.

- Temel eşlem kullanımı

Go programlama dilinde yapı oluşturmak için make fonksiyonu kullanılır.
makefonksiyonu verilen türde, ilklendirilmiş ve kullanıma hazır durumda bir eşlem döner.
package main

import "fmt"

type kisiyaslari struct {
	a,b int
}
func main() {
	var x= make(map[string]kisiyaslari)
	x["Alex Kerim"] = kisiyaslari{20, 30}
	fmt.Println(x["Alex Kerim"])
}
/* Ekran çıktısı:
{20 30}
*/

Yukarıdaki örnekteki kod bölümünü inceleyelim :

- type kisiyaslari struct {... ile kisiyaslari adında yapı oluşturduk.
- a,b int ile a ve b adında iki adet int türünde alan belirttik.
- var x= make(map[string]kisiyaslari) ile x değişkenini yapımızla eşledik.
- x["Alex Kerim"] = kisiyaslari{20, 30} ile x değişken değerlerini ve kisiyaslari yapisinin alan bilgilerini belirtip eşleşmeyi tamamlamış olduk.
- fmt.Println(x["Alex Kerim"]) ile ekrana x değişkeninin değerlerine eş olan kisiyaslari alan bilgilerini yazdırdık.
Yani   " Alex "  20 ile    " Kerim "   30 ile eşleşti.

- Eşlemlerde erişme , silme , değişterme

package main

import "fmt"
import "strconv"

func main() {
	x := make(map[int]string) // x eşlemini oluşturduk
	for i := 0; i < 10; i++ {
		x[i] = "numara " + strconv.Itoa(i)

	}
	uzunluk := len(x) // x eşleminin uzunluğunu öğrendik : 10
	delete(x, 1)      // x eşleminin " 1 " elamanını sildik
	delete(x, 2)      // x eşleminin " 2 " elamanını sildik
	_,varmi1 := x[1]
	_,varmi2 := x[2]
	fmt.Println(varmi1,varmi2)
    gunceluzunluk :=len(x) // x eşleminin elemanlarını sildikten sonraki uzunluğunu öğrendik
	fmt.Println("uzunluğu :",uzunluk)
	fmt.Println("guncel_uzunluğu :",gunceluzunluk)
	for a := 0; a < uzunluk; a++ {
		if x[a] == "" {
			x[a] = "numara silinmiş"
		}
		fmt.Println(x[a])

	}

}
/* Ekran çıktısı :
false false
uzunluğu : 10
guncel_uzunluğu : 8
number0
silinmiş
silinmiş
number3
number4
number5
number6
number7
number8
number9
*/

Yukarıdaki örneğimizde neler yaptık ?


- for i := 0; i < 10; i++ {... x eşlemini sayaç 10'dan küçük olma koşulu ile bir for döngüsüne soktuk.
- x[i] = "numara " + strconv.Itoa(i) x eşlemine döngü boyunca eleman ekledik.
Örnek : numara 6
- delete( x, 1 ) x eşleminin " 1 " elemanını sildik.
- delete( x, 2 ) x eşleminin " 2 " elemanını sildik.
Eşlem elemanları delete ile silinir.
- _ , varmi1 := x[1] bu kodumuzda x[1] elemanı var mı , yok mu kontrol ettik.
Biz o elemanı sildiğimiz için false değeri döndü.
- for a:= 0 ; a < uzunluk ; a++ {... x eşlemini sayaç uzunluk değerinden küçük olma koşulu ile bir for döngüsüne soktuk.
- if x[a] == "" {... eğer x eşleminin a elemanı yoksa koşulunu başlattık.
Koşul sağlanması halinde x[a] = "numara silinmiş" kodu ile silinen elemanı " numara silinmiş " yaptık.