0Pricing
Go Academy · Pelajaran

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 error

Nilai 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.Fatal atau 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

  1. Dasar-Dasar Fungsi dan Signature
  2. Beberapa Nilai Pengembalian
  3. Fungsi Variadik
  4. defer, Fungsi Anonim & Closure
← Kembali ke Go Academy