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 Membikin array terlebih dahulu sebelum dikirimkan sebagai argument, sedangkan varargs kita Bisa mengirimkan banyak data hanya dengan memisahkannya menggunakan tanda koma.
Membikin Variadic Function
Variadic function sebenarnya hanya sebuah function seperti pada umumnya oleh karena itu Langkah membuatnya juga sama seperti Membikin function Lazim. Hanya saja, kita menambahkan parameter yang bertipe varargs ke function tersebut. Varargs Mempunyai Tanda Yakni diawali dengan simbol ellipsis (…). Perhatikan Contoh 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 Contoh di atas kita Membikin 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 Perulangan Buat 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 Bisa menambahkan argument sebanyak yang Engkau inginkan.
Dalam variadic function, Engkau hanya Bisa Membikin 1 buah
varargs dan harus berada diposisi terakhir.
Error:
func sum(nums ...int, name string) {
//
}
Cermat:
func sum(name string, nums ...int) {
//
}
Slice Sebagai Parameter
Varargs pada variadic function akan dirubah menjadi slice oleh karena itu kita Bisa melakukan perulangan pada varargs Buat melakukan penjumlahan.
Pada Contoh sebelumnya kita menuliskan Nomer-Nomer langsung Demi memanggil function.
Tapi sebenarnya Engkau Bisa 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 Contoh 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