Variadic Function
Variadic function adalah sebuah function yang dapat menerima sejumlah variabel sebagai argumen. Argument ini disebut sebagai varargs. Dalam sebuah function, parameter yang berada di posisi terakhir dapat dijadikan sebagai varargs. Varargs berbeda dengan tipe data array. Pada parameter yang bertipe array, kita harus Membangun array terlebih dahulu sebelum dikirimkan sebagai argument, sedangkan varargs kita Pandai mengirimkan banyak data hanya dengan memisahkannya menggunakan tanda koma.
Membangun Variadic Function
Variadic function sebenarnya hanya sebuah function seperti pada umumnya oleh karena itu Metode membuatnya juga sama seperti Membangun function Biasa. Hanya saja, kita menambahkan parameter yang bertipe varargs ke function tersebut. Varargs Mempunyai Tanda khas Yakni diawali dengan simbol ellipsis (…). Perhatikan Misalnya kode berikut.
package main
import "fmt"
func sumNumbers(numbers ...int) int {
result := 0
for _, number := range numbers {
result += number
}
return result
}
func main() {
result := sumNumbers(10, 10, 10)
fmt.Println("Hasil:", result)
}
output:
Pada Misalnya di atas kita Membangun sebuah variadic function bernama sumNumbers
yang Mempunyai parameter numbers. Dapat Engkau lihat kita menambahkan simbol ellipsis (…) diikuti tipe data integer.
Di dalamnya, variabel numbers kita Pengulangan Demi mengambil nilai yang dikirimkan kemudian kita jumlahkan dengan variabel result.
Kemudian dalam function main
kita paggil function sumNumbers
dengan menmberi 3 buah argument dipisahkan dengan koma. Argument inilah yang kemudian kita jumlahkan. Engkau Pandai menambahkan argument sebanyak yang Engkau inginkan.
Dalam variadic function, Engkau hanya Pandai Membangun 1 buah
varargs dan harus berada diposisi terakhir.
Error:
func sum(nums ...int, name string) {
//
}
Pas:
func sum(name string, nums ...int) {
//
}
Slice Sebagai Parameter
Varargs pada variadic function akan dirubah menjadi slice oleh karena itu kita Pandai melakukan perulangan pada varargs Demi melakukan penjumlahan.
Pada Misalnya sebelumnya kita menuliskan Nomor-Nomor langsung Begitu memanggil function.
Tapi sebenarnya Engkau Pandai juga memasukkan slice yang sudah dibuat sebelumnya sebagai argument pada variadic function. Caranya adalah kita tuliskan nama variabel slice kemudian diikuti dengan simbol ellipsis (…).
Perhatikan Misalnya berikut ini:
package main
import "fmt"
func sumNumbers(numbers ...int) int {
result := 0
for _, number := range numbers {
result += number
}
return result
}
func main() {
numbers := []int{10, 10, 10}
result := sumNumbers(numbers...)
fmt.Println("Hasil:", result)
}
output:
Berikutnya: #24: Function as Value