Varlık Denetimi
Virgül-ok deyimini öğrenin
Varlık Denetimi, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Eksik Anahtarlar Sıfır Değeri Döndürür
Var olmayan bir anahtarı okuduğunuzda Go, hata yerine değer türünün sıfır değerini döndürür. int için bu değer 0, string için boş dizedir.
package main
import "fmt"
func main() {
m := map[string]int{"a": 5}
fmt.Println(m["missing"])
}Belirsizlik Sorunu
0 değeri döndürülürse anahtarın değerinin 0 olduğunu mu, yoksa anahtarın bulunmadığını mı nasıl anlarsınız? Yalnızca değere bakarak bunu anlayamazsınız.
Virgül-Ok Deyimi
Harita erişimi iki değer döndürebilir: değer ve bir boole değeri. Boole değeri, anahtar varsa true olur. Buna virgül-ok deyimi denir.
package main
import "fmt"
func main() {
m := map[string]int{"a": 0}
val, ok := m["a"]
fmt.Println(val, ok)
}Eksik Anahtarları Ayırt Etme
Artık ayrımı yapabilirsiniz. Mevcut bir anahtar, değeri sıfır değeri olsa bile ok = true döndürür.
package main
import "fmt"
func main() {
m := map[string]int{"a": 0}
_, okA := m["a"]
_, okB := m["b"]
fmt.Println("a exists:", okA, "b exists:", okB)
}İşlem Yapmadan Önce Denetleme
Yaygın bir kalıp, yalnızca anahtar mevcut olduğunda işlem yapmak için virgül-ok ifadesini bir if içinde kullanmaktır.
package main
import "fmt"
func main() {
prices := map[string]int{"pen": 3}
if p, ok := prices["pen"]; ok {
fmt.Println("price is", p)
} else {
fmt.Println("not found")
}
}Değeri Yok Sayma
Yalnızca anahtarın mevcut olup olmadığını önemsiyorsanız, değer için boş tanımlayıcıyı _ kullanınız.
package main
import "fmt"
func main() {
seen := map[string]bool{"x": true}
_, exists := seen["x"]
fmt.Println("x seen:", exists)
}Görülme Sayılarını Hesaplama
Virgül-ok, sayaçlarla iyi çalışır. Ancak şuna dikkat ediniz: ok olmadan bile m[key]++ çalışır; çünkü eksik anahtar sıfırdan başlar.
package main
import "fmt"
func main() {
counts := map[string]int{}
for _, w := range []string{"a", "b", "a"} {
counts[w]++
}
fmt.Println(counts)
}Varsayılan Değerleri Güvenle Kullanma
Virgül-ok ve bir varsayılan değişken kullanarak anahtar eksik olduğunda bir yedek değer sağlayabilirsiniz.
package main
import "fmt"
func main() {
cfg := map[string]string{}
lang, ok := cfg["lang"]
if !ok {
lang = "en"
}
fmt.Println("lang:", lang)
}Haritaların Ötesinde Virgül-Ok
İki değerli biçim, kanal alımlarında ve tür doğrulamalarında da görülür. Kalıp tutarlıdır: ikinci değer başarıyı bildirir.
package main
import "fmt"
func main() {
var i interface{} = "hello"
s, ok := i.(string)
fmt.Println(s, ok)
}Küme Üyeliğini Denetleme
Boole veya boş yapı değerlerine sahip haritalar, üyeliği izlemek için sıkça kullanılır. Virgül-ok, bir öğenin kümede olup olmadığını net biçimde yanıtlar.
package main
import "fmt"
func main() {
allowed := map[string]struct{}{"read": {}, "write": {}}
_, ok := allowed["delete"]
fmt.Println("delete allowed:", ok)
}En İyi Uygulama
Sıfır değeri geçerli bir saklanan değer olabiliyorsa her zaman virgül-ok kullanınız. Bu, belirsizliği ortadan kaldırır ve amacı açıkça gösterir.
Hızlı Denetim
val, ok := m["x"] okuyup val = 0, ok = true elde ediyorsunuz. Bu ne anlama gelir?
Özet
Virgül-ok ile varlığı denetleme:
- Eksik anahtarlar sıfır değerini döndürür
val, ok := m[key], varlığıokiçinde bildirir- Sıfır gerçek bir değer olabiliyorsa bunu kullanınız
Sıkça Sorulan Sorular
“Varlık Denetimi” dersi ücretsiz mi?
Evet — “Varlık Denetimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Varlık Denetimi” dersinde ne öğreneceğim?
Virgül-ok deyimini öğrenin Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Varlık Denetimi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Map İç Yapısı
- Varlık Denetimi
- Küme Olarak Map'ler
- Yineleme ve Sıralama