Mengenal Function Sebagai Parameter di Golang
Di dalam bahasa pemerograman golang, terdapat konsep yang dapat memungkinkan kita untuk melakukan assign fungsi sebagai parameter pada fungsi lain. Di golang biasanya di sebut dengan Function as Parameter. Kali ini Code Dadakan akan membahas tipe fungsi ini dengan mengacu pada contoh kode di bawah ini, dan akan kami jelaskan setiap step pada kode :
package main
import "fmt"
func main() {
testFilter := filter
messageFiltering("Ahyar", "Bro..", testFilter)
messageFiltering("Ahyar", "Aduh", testFilter)
filterTime := timeFilter
sayTime(7, filterTime)
sayTime(15, filterTime)
sayTime(21, filterTime)
}
Kode di atas, terdapat dua bagian utama. yaitu filter pesan dan waktu. Kedua fungsi tersebut menggunakan fungsi yang di oper sebagai parameter.
Filter Pesan
func messageFiltering(from string, message string, filterMessage func(string) string) {
fmt.Println("from :", from)
fmt.Println("message :", filterMessage(message))
}
func filter(message string) string {
if message == "Aduh" || message == "Aishh" {
return "Oppss"
}
return message
}
Pada fungsi messageFiltering, harus menerima 3 buah parameter :
- from : pengirim pesan
- message : isi pesan
- filterMessage : fungsi untuk memfilter pesan dari pengirim pesan
Filter Waktu
type FilterTime func(int) string
func sayTime(time int, filterTime FilterTime) {
println(filterTime(time))
}
func timeFilter(time int) string {
if time >= 6 && time <= 11 {
return "Good Morning"
} else if time > 11 && time <= 18 {
return "Good Afternoon"
} else if time > 18 && time <= 24 {
return "Good Night"
}
return "No Time"
}
Pada bagian ini, fungsi sayTime menerima dua buah parameter, parameter pertama untuk menerima waktu, dan parameter kedua adalah fungsi untuk melakukan filter sesuai dengan waktu :
- Antara pukul 6 hingga 11, pengguna akan mendapatkan output "Good Morning"
- Dari pukul 11 hingga 18, pengguna akan mendapatkan output "Good Afternoon"
- Dari pukul 18 hingga 24, pengguna akan mendapatkan output "Good Night"
Jika anda menjalankan full code di atas, maka akan terdapat output di layar seperti di bawah ini :
from : Ahyar
message : Bro..
from : Ahyar
message : Oppss
Good Morning
Good Afternoon
Good Night
Kesimpulan
Selanjutnya anda bisa lanjut ke Module :
Posting Komentar