Function as Value
Di golang, function juga merupakan sebuah tipe data dan bisa dianggap sebagai nilai. Sehingga kita dapat menyimpan function ke dalam sebuah variabel. Untuk lebih jelasnya, perhatikan contoh code berikut.
package main
import "fmt"
func sayHiTo(name string) string {
return "Hi, " + name
}
func main() {
hi := sayHiTo
result := hi("Rizky")
fmt.Println(result)
}
output:
Hi, Rizky
Pada contoh di atas, kita membuat sebuah function dengan nama sayHiTo
yang memiliki satu buah parameter string yaitu name
. Karena function merupakan sebuah tipe data yang artinya function adalah value atau nilai, sehingga dalam function main kita menyimpan function sayHiTo
ke dalam variabel bernama hi
. Variabel ini kemudian dapat kita panggil seperti kita memanggil function seperti biasa.
Apa Manfaatnya?
Berdasarkan contoh yang kita buat sebenarnya penggunaan function sebagai value ini tidak terlihat memiliki manfaat apapun ya, malah terkesan memperpanjang kode kita.
Function as value ini dapat kita gunakan ketika kita membuat sebuah function yang membutuhkan function lain sebagai parameternya, atau function yang mengembalikan function lain.
Pada materi berikutnya akan kita bahas bagaimana menggunakan function sebagai parameter.