Beberapa Nilai Pengembalian
Mengembalikan tuple dan pola error
Beberapa Nilai Pengembalian 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.
Mengapa Beberapa Nilai Pengembalian?
Fungsi Go dapat mengembalikan beberapa nilai, sehingga tidak memerlukan parameter keluaran atau pengecualian. Pola yang paling umum adalah mengembalikan hasil dan error:
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}Menangani Beberapa Nilai Pengembalian
Pemanggil menerima semua nilai pengembalian sebagai tuple. Gunakan _ untuk membuang nilai yang tidak diperlukan:
result, err := divide(10, 3)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
value, _ := divide(8, 2) // discard errorNilai Pengembalian Bernama
Nilai pengembalian dapat diberi nama sehingga menjadi variabel di dalam fungsi:
func minMax(nums []int) (min, max int) {
min, max = nums[0], nums[0]
for _, n := range nums[1:] {
if n < min { min = n }
if n > max { max = n }
}
return // naked return
}Return Tanpa Argumen
return tanpa argumen mengembalikan variabel return bernama. Gunakan dengan hemat—hanya pada fungsi singkat yang namanya sudah menjelaskan maksudnya:
- Fungsi singkat: dapat diterima
- Fungsi panjang: mengurangi keterbacaan—lebih baik gunakan return eksplisit
Pola (Nilai, Kesalahan)
Pola penanganan kesalahan Go yang baku:
func readConfig(path string) (Config, error) {
data, err := os.ReadFile(path)
if err != nil {
return Config{}, fmt.Errorf("read config: %w", err)
}
var cfg Config
return cfg, json.Unmarshal(data, &cfg)
}Jangan Pernah Mengabaikan Kesalahan
Mengabaikan kesalahan dengan _ berbahaya. Praktik terbaik:
- Periksa setiap kesalahan, kecuali Anda memiliki alasan khusus untuk tidak melakukannya
- Bungkus kesalahan dengan konteks menggunakan
fmt.Errorf("op: %w", err) - Gunakan
log.Fatalatau panic hanya di batas program, bukan jauh di dalam pustaka
Return Tiga Nilai
Beberapa fungsi mengembalikan tiga nilai, meskipun ini lebih jarang:
func parseIPPort(s string) (ip string, port int, err error) {
// ... parsing logic
return
}Mengembalikan Struct vs Beberapa Nilai
Kapan harus mengembalikan struct dibandingkan beberapa nilai:
- 2–3 nilai yang sangat berkaitan: beberapa return sudah tepat
- 4 nilai atau lebih, atau memiliki bidang opsional: gunakan struct
- Pola (nilai, kesalahan): selalu gunakan beberapa return
Menetapkan Nilai ke Variabel yang Sudah Ada
Gunakan = (bukan :=) saat menetapkan nilai ke variabel yang sudah dideklarasikan di luar pemanggilan:
var cfg Config
var err error
cfg, err = loadConfig()
if err != nil { ... }Beberapa Return dalam Rangkaian Method
Go tidak mendukung rangkaian method secara langsung pada beberapa nilai return (berbeda dengan Result.map di Rust). Gunakan variabel perantara untuk menangani kesalahan di setiap langkah:
data, err := fetchData(url)
if err != nil { return err }
parsed, err := parseData(data)
if err != nil { return err }
return save(parsed)Pemeriksaan Singkat
Apa yang dilakukan naked return di Go?
Rangkuman: Beberapa Nilai Return
Beberapa return merupakan idiom inti Go:
- Fungsi dapat mengembalikan beberapa nilai dalam daftar yang diapit tanda kurung
- Pola (nilai, kesalahan) digunakan di mana-mana—selalu periksa kesalahannya
- Variabel return bernama memungkinkan naked return (gunakan dengan hemat)
- Gunakan
_untuk membuang nilai yang tidak Anda perlukan - Lebih baik gunakan beberapa return daripada parameter keluaran agar API lebih bersih
Berikutnya: fungsi variadik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Beberapa Nilai Pengembalian” gratis?
Ya — teks lengkap “Beberapa Nilai Pengembalian” 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 “Beberapa Nilai Pengembalian”?
Mengembalikan tuple dan pola error 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 “Beberapa Nilai Pengembalian” 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
- Dasar-Dasar Fungsi dan Signature
- Beberapa Nilai Pengembalian
- Fungsi Variadik
- defer, Fungsi Anonim & Closure