Artikel ini merupakan bagian dari seri Belajar Golang Dari Dasar

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 membuat array terlebih dahulu sebelum dikirimkan sebagai argument, sedangkan varargs kita bisa mengirimkan banyak data hanya dengan memisahkannya menggunakan tanda koma.

Membuat Variadic Function

Variadic function sebenarnya hanya sebuah function seperti pada umumnya oleh karena itu cara membuatnya juga sama seperti membuat function biasa. Hanya saja, kita menambahkan parameter yang bertipe varargs ke function tersebut. Varargs memiliki ciri yaitu 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:

Hasil: 30

Pada contoh di atas kita membuat sebuah variadic function bernama sumNumbers yang memiliki parameter numbers. Dapat kamu lihat kita menambahkan simbol ellipsis (…) diikuti tipe data integer.

Di dalamnya, variabel numbers kita iterasi untuk 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. Kamu bisa menambahkan argument sebanyak yang kamu inginkan.

Dalam variadic function, kamu hanya bisa membuat 1 buah varargs dan harus berada diposisi terakhir.

Error:

func sum(nums ...int, name string) {
  //
}

Benar:

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 untuk melakukan penjumlahan. Pada contoh sebelumnya kita menuliskan angka-angka langsung saat memanggil function.

Tapi sebenarnya kamu 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:

Hasil: 30

Berikutnya: #24: Function as Value

Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.

Lightbox