0Pricing
Go Academy · Pelajaran

Fungsi Variadik

Menerima jumlah argumen yang bervariasi

Fungsi Variadik adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Apa Itu Fungsi Variadik?

Fungsi variadik menerima nol atau lebih argumen dari tipe tertentu, lalu mengumpulkannya ke dalam sebuah slice:

func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

fmt.Println(sum(1, 2, 3, 4)) // 10

Sintaks ...T

Gunakan ...T sebagai tipe parameter terakhir. Di dalam fungsi, parameter ini berupa []T:

  • Dapat dipanggil dengan 0 atau lebih argumen
  • Parameter variadik harus menjadi parameter terakhir
  • Hanya boleh ada satu parameter variadik dalam setiap fungsi

Menyebarkan Slice

Teruskan slice yang sudah ada ke fungsi variadik menggunakan operator penyebaran ...:

nums := []int{1, 2, 3, 4, 5}
total := sum(nums...)  // spread the slice
fmt.Println(total)     // 15

fmt.Println Bersifat Variadik

Banyak fungsi dalam pustaka standar bersifat variadik. fmt.Println memiliki signature func Println(a ...interface{}) (n int, err error)—fungsi ini menerima sejumlah nilai dengan tipe apa pun.

append Bersifat Variadik

append bawaan bersifat variadik:

a := []int{1, 2, 3}
b := []int{4, 5, 6}
a = append(a, b...)   // append all of b into a
fmt.Println(a)         // [1 2 3 4 5 6]

Variadik dengan Parameter Lain

Parameter variadik selalu berada di posisi terakhir. Gabungkan parameter tetap dan variadik:

func logf(level string, msg string, args ...interface{}) {
    fmt.Printf("[%s] "+msg+"\n", append([]interface{}{level}, args...)...)
}

Pemanggilan Variadik Kosong

Fungsi variadik dapat dipanggil tanpa argumen—slice-nya akan berupa nil (atau kosong):

fmt.Println(sum())   // 0 — nil slice, loop runs 0 times

Parameter Variadik vs Slice

Kapan harus menggunakan parameter variadik dibandingkan parameter slice:

  • Variadik: saat pemanggil memberikan nilai satu per satu secara langsung (misalnya, sum(1,2,3))
  • Slice: saat pemanggil selalu memiliki koleksi yang sudah dibuat sebelumnya
  • Variadik lebih praktis di lokasi pemanggilan; secara internal, keduanya sama-sama berfungsi

Meneruskan Variadik ke Variadik Lain

Teruskan argumen variadik menggunakan penyebaran:

func logError(args ...interface{}) {
    log.Println(args...) // forward to log.Println
}

Membangun Pola Opsi

Variadik ...Option adalah pola populer untuk konfigurasi opsional (opsi fungsional):

type Option func(*Server)

func NewServer(addr string, opts ...Option) *Server {
    s := &Server{addr: addr}
    for _, o := range opts {
        o(s)
    }
    return s
}

Pemeriksaan Singkat

Bagaimana cara meneruskan slice ke fungsi variadik?

Rangkuman: Fungsi Variadik

Fungsi variadik membuat lokasi pemanggilan menjadi lebih rapi:

  • ...T mengumpulkan argumen terakhir ke dalam []T di dalam fungsi
  • Panggil dengan nilai satu per satu atau sebarkan slice menggunakan slice...
  • Fungsi bawaan seperti append dan fmt.Println bersifat variadik
  • Hanya satu parameter variadik yang diperbolehkan, dan parameter tersebut harus berada di posisi terakhir
  • Gunakan pola opsi fungsional untuk desain API yang ekspresif

Berikutnya: defer, fungsi anonim, dan closure.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi Variadik” gratis?

Ya — teks lengkap “Fungsi Variadik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Fungsi Variadik”?

Menerima jumlah argumen yang bervariasi Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Fungsi Variadik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Fungsi dan Signature
  2. Beberapa Nilai Pengembalian
  3. Fungsi Variadik
  4. defer, Fungsi Anonim & Closure
← Kembali ke Go Academy