Menu
Coddy logo textTech

Map'leri Karşılaştırma

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 29 / 68.

Go'daki diğer birçok veri tipinin aksine, map'lerin benzersiz bir kısıtlaması vardır: == operatörü kullanılarak doğrudan karşılaştırılamazlar. Bu kuralın tek istisnası, bir map'i nil ile karşılaştırmaktır.

Bu, aşağıdaki gibi bir kodun derlenmeyeceği anlamına gelir:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// Bu bir derleme hatasına neden olacaktır!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

Ancak, bir map'i nil ile güvenli bir şekilde karşılaştırabilirsiniz:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

İki map'in aynı anahtar-değer çiftlerini içerip içermediğini kontrol etmeniz gerektiğinde, her iki map üzerinde de gezinen ve her bir öğeyi tek tek karşılaştıran özel bir fonksiyon yazmalısınız. Bu yaklaşım, karşılaştırma mantığı üzerinde size tam kontrol sağlayarak özel kullanım durumunuz için "eşit"in tam olarak ne anlama geldiğini tanımlamanıza olanak tanır.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Kopya kağıdı

Map'ler, nil ile karşılaştırılmaları haricinde, == operatörü kullanılarak doğrudan karşılaştırılamazlar:

// Bu derlenmeyecektir
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
if map1 == map2 { // Derleme hatası!
    fmt.Println("Maps are equal")
}

Bir map'i nil ile karşılaştırabilirsiniz:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

İki map'in eşit olup olmadığını kontrol etmek için, her iki map üzerinde de dönen ve her bir öğeyi tek tek karşılaştıran özel bir fonksiyon yazmalısınız.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler