0Pricing
Go Academy · Pelajaran

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 melalui ok
  • 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

  1. Bagian Dalam Map
  2. Memeriksa Keberadaan
  3. Map sebagai Set
  4. Iterasi dan Pengurutan
← Kembali ke Go Academy