0Pricing
Go Academy · Pelajaran

Dasar-Dasar Fungsi dan Signature

Parameter, tipe pengembalian, dan konvensi pemanggilan

Dasar-Dasar Fungsi dan Signature adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Mendefinisikan Fungsi

Di Go, fungsi didefinisikan dengan kata kunci func:

func greet(name string) string {
    return "Hello, " + name
}

Parameter dan Argumen

Parameter memiliki tipe dan dicantumkan sebagai pasangan name type. Beberapa parameter dengan tipe yang sama dapat menggunakan anotasi tipe yang sama:

func add(x, y int) int {
    return x + y
}

func rect(w, h float64) float64 {
    return w * h
}

Fungsi Tanpa Nilai Pengembalian

Fungsi yang tidak mengembalikan nilai cukup menghilangkan tipe pengembalian. Fungsi tersebut secara implisit mengembalikan nilai ketika eksekusi mencapai akhir:

func printBanner(title string) {
    fmt.Println("=====", title, "======")
}

Memanggil Fungsi

Panggil fungsi berdasarkan namanya dengan tanda kurung dan argumen yang sesuai:

result := add(3, 4)        // 7
fmt.Println(greet("Go"))   // Hello, Go
printBanner("Welcome")

Fungsi sebagai Nilai Kelas Satu

Fungsi di Go merupakan nilai kelas satu — fungsi dapat ditetapkan ke variabel dan diteruskan sebagai argumen:

apply := func(n int, f func(int) int) int {
    return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10

Tipe Fungsi

Anda dapat mendefinisikan tipe fungsi bernama untuk membuat tanda tangan lebih rapi:

type Transform func(int) int

func applyAll(n int, fns []Transform) int {
    for _, f := range fns {
        n = f(n)
    }
    return n
}

Fungsi Rekursif

Go mendukung rekursi. Perhatikan kedalaman stack — stack goroutine Go bertambah secara dinamis, tetapi rekursi tanpa batas tetap menyebabkan stack overflow:

func factorial(n int) int {
    if n <= 1 {
        return 1
    }
    return n * factorial(n-1)
}

Konvensi Penamaan Fungsi

Konvensi penamaan fungsi di Go:

  • Gunakan MixedCaps (diekspor) atau mixedCaps (tidak diekspor)
  • Gunakan nama singkat yang berorientasi tindakan: New, Get, Parse, Write
  • Hindari GetX untuk pengambil sederhana — cukup gunakan X
  • Predikat boolean: IsValid, HasPrefix

Fungsi init()

Fungsi khusus init() berjalan secara otomatis ketika paket dimuat, sebelum main():

  • Tidak menerima argumen dan tidak mengembalikan apa pun
  • Sebuah paket dapat memiliki beberapa fungsi init()
  • Gunakan untuk penyiapan satu kali, seperti mendaftarkan driver

Fungsi dibandingkan dengan Method

Fungsi tidak terkait dengan tipe apa pun. Method memiliki receiver (dibahas dalam Struct dan Method). Keduanya menggunakan kata kunci func:

// Function
func max(a, b int) int { ... }

// Method
func (c Counter) Value() int { ... }

Pemeriksaan Singkat

Di Go, dapatkah sebuah fungsi mengembalikan beberapa nilai?

Ringkasan: Dasar-Dasar Fungsi

Fungsi Go ekspresif dan fleksibel:

  • func name(params) returnType { }
  • Parameter dengan tipe yang sama dapat menggunakan anotasi tipe yang sama
  • Fungsi merupakan nilai kelas satu
  • Definisikan tipe fungsi untuk tanda tangan yang dapat digunakan ulang
  • Rekursi didukung; init() berjalan saat paket dimuat

Berikutnya: beberapa nilai pengembalian secara mendalam.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar Fungsi dan Signature” gratis?

Ya — teks lengkap “Dasar-Dasar Fungsi dan Signature” 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 “Dasar-Dasar Fungsi dan Signature”?

Parameter, tipe pengembalian, dan konvensi pemanggilan 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 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar Fungsi dan Signature” 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