Multiple Return Values — Go

Multiple Return Values Salah satu fitur paling khas Go: fungsi bisa mengembalikan lebih dari satu nilai. Ini sangat penting untuk pola error handling di Go…

Multiple Return Values

Salah satu fitur paling khas Go: fungsi bisa mengembalikan lebih dari satu nilai. Ini sangat penting untuk pola error handling di Go.

Sintaks

func bagi(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("tidak bisa bagi dengan nol")
    }
    return a / b, nil
}

Menerima Multiple Return

hasil, err := bagi(10, 3)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Hasil:", hasil)
}

// Jika tidak butuh error, gunakan _
hasil2, _ := bagi(20, 4)
fmt.Println(hasil2)

Named Return Values

func persegi(sisi float64) (luas, keliling float64) {
    luas = sisi * sisi
    keliling = 4 * sisi
    return // "naked return" — mengembalikan luas dan keliling
}

Pattern: ok idiom

Mirip error pattern, tapi menggunakan boolean:

func cariUser(id int) (string, bool) {
    users := map[int]string{1: "Budi", 2: "Sari"}
    nama, ok := users[id]
    return nama, ok
}

nama, ok := cariUser(1)
if ok {
    fmt.Println("Ditemukan:", nama)
} else {
    fmt.Println("User tidak ditemukan")
}

Kapan Menggunakan Multiple Return?

Yang akan kamu pelajari