Anonymous Function
Pada materi-materi sebelumnya, kita selalu memberi nama ketika Membikin sebuah function. Pada kasus tertentu, terkadang lebih mudah Kalau mendeklarasikan sebuah function yang langsung dijadikan value Buat suatu variabel atau parameter tanpa harus Membikin nama function. Function yang dideklarasikan tanpa nama ini disebut sebagai anonymous function.
Karena anonymous function adalah function yang Bukan Mempunyai nama, maka ketika Membikin anonymous function kita langsung menggunakannya. Contohnya adalah langsung dijadikan sebagai nilai suatu variabel, sebagai argument Begitu memanggil function lain, atau sebagai return value dari function lain.
Misalnya Kode
Agar lebih mudah memahami penggunaan anonymous function, perhatikan Misalnya kode berikut ini.
package main
import "fmt"
func authorized(username string, authorize func(string) bool) {
if authorize(username) {
fmt.Println("Authorized")
} else {
fmt.Println("Unauthorized")
}
}
func main() {
// Misalnya 1 - Dengan variabel
onlyAdmin := func(username string) bool {
return username == "admin"
}
authorized("admin", onlyAdmin)
// Misalnya 2 - Langsung di parameter sebagai argument
authorized("admin", func(username string) bool {
return username == "member"
})
}
Pada Misalnya kode di atas, kita Membikin function bernama authorized
yang menerima dua parameter Ialah username dengan tipe data string, dan authorize dengan tipe data function. Function authorized
akan mencetak kata Authorized atau Unauthorized berdasarkan username yang diberikan dan bagaimana function authorize bekerja.
Dalam main
function, terdapat dua Misalnya pembuatan anonymous function. Yang pertama adalah dengan menyimpannya dalam variabel, atau yang kedua dengan Metode menuliskannya secara langsung pada Begitu Ingin digunakan di parameter.
Berikutnya: Recursive Function