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)) // 10Tipe 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) ataumixedCaps(tidak diekspor) - Gunakan nama singkat yang berorientasi tindakan:
New,Get,Parse,Write - Hindari
GetXuntuk pengambil sederhana — cukup gunakanX - 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
- Dasar-Dasar Fungsi dan Signature
- Beberapa Nilai Pengembalian
- Fungsi Variadik
- defer, Fungsi Anonim & Closure