Memeriksa Keberadaan
Idiom koma-ok
Memeriksa Keberadaan adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Kunci yang Hilang Mengembalikan Nilai Nol
Saat Anda membaca kunci yang tidak ada, Go mengembalikan nilai nol dari jenis nilai tersebut, bukan kesalahan. Untuk int, nilainya adalah 0; untuk string, nilainya adalah string kosong.
package main
import "fmt"
func main() {
m := map[string]int{"a": 5}
fmt.Println(m["missing"])
}Masalah Ambiguitas
Jika nilai 0 dikembalikan, bagaimana Anda mengetahui apakah kunci tersebut ada dengan nilai 0, atau sebenarnya tidak ada? Anda tidak dapat mengetahuinya hanya dari nilainya.
Idiom Koma-Ok
Akses peta dapat mengembalikan dua nilai: nilai dan boolean. Boolean tersebut bernilai true jika kuncinya ada. Inilah idiom koma-ok.
package main
import "fmt"
func main() {
m := map[string]int{"a": 0}
val, ok := m["a"]
fmt.Println(val, ok)
}Membedakan Kunci yang Tidak Ada
Sekarang Anda dapat membedakan keduanya. Kunci yang ada menghasilkan ok = true, meskipun nilainya merupakan nilai nol.
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)
}Periksa Sebelum Bertindak
Pola yang umum adalah menggunakan koma-ok di dalam if untuk bertindak hanya ketika kunci tersebut ada.
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")
}
}Mengabaikan Nilai
Jika Anda hanya perlu mengetahui apakah sebuah kunci ada, gunakan identifier kosong _ untuk nilainya.
package main
import "fmt"
func main() {
seen := map[string]bool{"x": true}
_, exists := seen["x"]
fmt.Println("x seen:", exists)
}Menghitung Kemunculan
Koma-ok cocok digunakan bersama penghitung. Namun, perlu diperhatikan: bahkan tanpa ok, m[key]++ tetap berfungsi karena kunci yang hilang dimulai dari nol.
package main
import "fmt"
func main() {
counts := map[string]int{}
for _, w := range []string{"a", "b", "a"} {
counts[w]++
}
fmt.Println(counts)
}Nilai Bawaan dengan Aman
Anda dapat memberikan nilai cadangan ketika sebuah kunci tidak ada dengan menggunakan koma-ok dan variabel bawaan.
package main
import "fmt"
func main() {
cfg := map[string]string{}
lang, ok := cfg["lang"]
if !ok {
lang = "en"
}
fmt.Println("lang:", lang)
}Koma-Ok di Luar Peta
Bentuk dua nilai juga muncul saat menerima dari channel dan melakukan penegasan jenis. Polanya konsisten: nilai kedua melaporkan keberhasilan.
package main
import "fmt"
func main() {
var i interface{} = "hello"
s, ok := i.(string)
fmt.Println(s, ok)
}Pemeriksaan Keanggotaan Himpunan
Peta dengan nilai bool atau struct kosong sering digunakan untuk melacak keanggotaan. Koma-ok memberikan jawaban yang jelas apakah sesuatu ada dalam himpunan.
package main
import "fmt"
func main() {
allowed := map[string]struct{}{"read": {}, "write": {}}
_, ok := allowed["delete"]
fmt.Println("delete allowed:", ok)
}Praktik Terbaik
Selalu gunakan koma-ok ketika nilai nol mungkin merupakan nilai yang sah untuk disimpan. Cara ini menghilangkan ambiguitas dan memperjelas maksud kode.
Pemeriksaan Singkat
Anda membaca val, ok := m["x"] dan mendapatkan val = 0, ok = true. Apa artinya?
Ringkasan
Memeriksa keberadaan dengan koma-ok:
- Kunci yang hilang mengembalikan nilai nol
val, ok := m[key]melaporkan keberadaan kunci melaluiok- Gunakan cara ini kapan pun nol mungkin merupakan nilai nyata
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memeriksa Keberadaan” gratis?
Ya — teks lengkap “Memeriksa Keberadaan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memeriksa Keberadaan”?
Idiom koma-ok Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Memeriksa Keberadaan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Bagian Dalam Map
- Memeriksa Keberadaan
- Map sebagai Set
- Iterasi dan Pengurutan