Anahtar Varlığını Kontrol Etme
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 89 / 109.
Go'da, iki değerli atama formunu kullanarak bir anahtarın bir map içinde var olup olmadığını kontrol edebilirsiniz. Bu önemlidir çünkü var olmayan bir anahtara erişmek, yanıltıcı olabilecek sıfır değerini (zero value) döndürür.
Ülke kodlarından oluşan bir map oluşturun:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
// "UK" değerinin map içinde olup olmadığını kontrol edin
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)Sonuç:
Value: Exists: falseexists boolean değeri, anahtarın bulunup bulunmadığını size söyler. Bunu koşullu ifadelerde kullanın:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}Sonuç:
US is in the mapGörev
BaşlangıçBu meydan okumada, bir map içerisinde bir anahtarın var olup olmadığını kontrol etme pratiği yapacaksınız. Elinizde öğrenci notlarından oluşan bir map var ve belirli bir öğrencinin notunun bu map içerisinde bulunup bulunmadığını kontrol etmeniz gerekiyor.
'Emma' öğrencisinin grades map'inde olup olmadığını kontrol etmek için kodu tamamlayın ve uygun bir mesaj yazdırın.
Kopya kağıdı
İki değerli atama kullanarak bir anahtarın map içinde var olup olmadığını kontrol edin:
value, exists := mapName["key"]İkinci değer, anahtarın bulunup bulunmadığını belirten bir booleandır:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)
// Çıktı: Value: Exists: false_ ile değeri yoksayarak koşullu ifadelerde kullanın:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}Kendin dene
package main
import "fmt"
func main() {
// Öğrenci notları haritası
grades := map[string]int{
"John": 85,
"Sarah": 92,
"Mike": 78,
"Lisa": 95,
}
// Kontrol edilecek öğrenci
studentToCheck := "Emma"
// YAPILACAK: studentToCheck'in grades haritasında mevcut olup olmadığını kontrol edin
// ve sonucu 'exists' adlı bir değişkende saklayın
// İpucu: comma-ok deyimini kullanın
// Sonucu yazdır
if exists {
fmt.Printf("%s's grade exists in the map\n", studentToCheck)
} else {
fmt.Printf("%s's grade does not exist in the map\n", studentToCheck)
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar Verme9İşaretçiler
İşaretçi Nedir?İşaretçi Değişkenlerini TanımlamaAdres Operatörüİşaretçi Referansını ÇözmeFonksiyonlarda İşaretçi KullanımıNil İşaretçilerÖzet - İşaretçileri Anlamak12Bileşik Tipler: Mapler
Maplere GirişMap Literallerini Tanımlama`make` ile Map OluşturmaAnahtar-Değer Ekleme ve GüncellemeMap Değerlerine ErişimAnahtar Varlığını Kontrol EtmeMap Öğelerini SilmeMap UzunluğuMapler Üzerinde YinelemeÖzet - Anahtar-Değer Depolama