Function & Multiple Return
Membuat function, parameter, nilai kembalian ganda, dan named return.
Function
Function membungkus kode agar bisa dipakai berulang kali.
func tambah(a int, b int) int {
return a + b
}
hasil := tambah(2, 3) // 5
Format: func nama(parameter tipe) tipeKembalian. Jika beberapa parameter bertipe sama, tipe boleh ditulis sekali: func tambah(a, b int) int.
Function tanpa nilai kembalian
func sapa(nama string) {
fmt.Println("Halo,", nama)
}
Multiple return value
Fitur andalan Go: satu function boleh mengembalikan beberapa nilai. Paling sering dipakai untuk hasil + error atau hasil + ok.
func bagi(a, b float64) (float64, bool) {
if b == 0 {
return 0, false
}
return a / b, true
}
hasil, ok := bagi(10, 2) // 5, true
Gunakan jika salah satu nilai tidak dibutuhkan: hasil, := bagi(10, 2).
Named return
Nilai kembalian boleh diberi nama; return kosong (naked return) akan mengembalikan nilainya.
func minMax(a, b int) (min, max int) {
if a < b { return a, b }
return b, a
}
Gunakan hemat — untuk function panjang, return eksplisit lebih jelas.
Function adalah nilai
Function bisa disimpan di variable dan dikirim sebagai argumen:
kali := func(a, b int) int { return a * b }
fmt.Println(kali(3, 4)) // 12
Scope & argumen disalin
Variable di dalam function hanya hidup di dalamnya. Argumen disalin saat dikirim, sehingga mengubah parameter tidak memengaruhi variable aslinya (kecuali memakai pointer, bab 15).
Urutan function di file
Berbeda dari beberapa bahasa, urutan penulisan function di file Go tidak berpengaruh. main boleh memanggil function yang ditulis di bawahnya.