Mengenal Variadic Function Di Golang

Table of Contents

Mengenal Variadic Function Di Golang

Sebelum anda belajar Golang Tahap 4, Pastikan anda sudah melalui proses pembelajaran di :

Golang Tahap 1

Golang Tahap 2

Golang Tahap 3

Selesaikan semua tantangan terlebih dahulu pada module di atas. Setelah itu mari kita lanjutkan pembelajaran golang di Golang Tahap 4.

Module pertama yang akan kita pelajari pada golang tahap 4 yaitu mengenal variadic function. Nah, variadic function ini adalah salah satu fitur unggulan yang ada di bahasa pemerograman golang yang dapat memungkinkan kita untuk menerima sebuah parameter dalam jumlah tidak terbatas. 

Apa itu Variadic Function

Variadic function adalah sebuah fungsi yang memungkinkan kita untuk memberikan parameter dalam bentuk variable argument ( var args ). Dengan menggunakan fitur ini ( variadic function ), anda dapat memberikan sejumlah inputan tanpa perlu membuat array atau slice terlebih dahulu. 

func sumNumbers(numbers ...int) int {
    // Function logic
}

Di atas adalah contoh pendefinisian variadic function. Hanya menambahkan tiga titik sebelum tipe data parameter. 

Contoh Implementasi

Berikut adalah contoh implementasi kode variadic function : 

package main

import "fmt"

func main() {
    // Memanggil variadic function
    numbers := sumNumbers(10, 5, 5, 10)
    fmt.Println(numbers)

    theNames("Budi", "Ninj4", "Arkham")

    theNamesAndProgrammingLenguange("Golang", "Rush", "Java", "Dart")
    fmt.Println()

    // Mengirim slice ke variadic function
    theNumbers := []int{12, 12, 12}
    total := sumNumbers(theNumbers...)
    fmt.Println(total)
}

Bisa di lihat pada kode di atas, ada beberapa contoh variadic function yang akan kami jelaskan secara rinci di bawah ini : 

Fungsi setNumbers()

func sumNumbers(numbers ...int) int {
    total := 0
    for _, number := range numbers {
        total += number
    }
    return total
}

Terlihat kode fungsi variadic setNumbers di atas menerima sejumlah parameter int yang akan menghitung total dari semua bilangan yang di terima. Kenapa seperti itu ? karena variable numbers merupakan variable argument sehingga kita dapat menambahkan sejumlah nilai int pada saat pemanggilan fungsi setNumbers di main function.

Fungsi theNames()

func theNames(names ...string) {
    for i := 0; i < len(names); i++ {
        fmt.Println(names[i])
    }
}

Pada fungsi theNames() menerima sejumlah argument nama dalam bentuk string, yang kemudian ketika fungsi ini di panggil, maka nama tersebut akan di cetak satu persatu. Anda dapat mengirimkan beberapa nama sekaligus pada fungsi ini tanpa harus membuat array atau slice terlebih dahulu.

Fungsi theNamesAndProgrammingLenguange()

func theNamesAndProgrammingLenguange(name string, lengunges ...string) {
    fmt.Println("Your name,", name)
    fmt.Print("Your lenguange: ")
    for _, lenguange := range lengunges {
        fmt.Print(lenguange, ",")
    }
}

Untuk membuat variadic function yang dapat menerima argument, harus berada pada parameter terakhir dalam daftar parameter. Terlihat jelas kode di atas variable name adalah parameter pertama dan lenguanges adalah variadic parameter.

Mengirim Slice ke Fungsi Variadic

Jika anda memiliki sebuah slice dan ingin mengirimkannya ke dalam parameter variadic function, anda bisa menggunakan notasi ... setelah nama slice. Berikut adalah contoh kode nya : 

theNumbers := []int{12, 12, 12}
total := sumNumbers(theNumbers...)
fmt.Println(total)

Ini memungkinkan anda dapat mengirimkan variable slice tanpa harus memasukkan satu persatu nilai argumentnya di dalam parameter.

Kesimpulan

Variadic function sangat berguna di saat anda menangani data dalam jumlah variable. Di dalam bahasa pemerograman golang, anda harus menempatkan variable parameter sebagai argument di posisi terakhir setelah parameter lain. Terus belajar dan melatih tingkat skill koding anda yaa. Terima kasih

Selanjutnya anda bisa lanjut ke Module :

Memahami Function Sebagai Value di Golang

Posting Komentar