Lompati ke konten utama
Modul 3 · Pelajaran 1 dari 511/50 dalam kursus~10 min
Pelajaran modul (1/5)

Tanda tangan dan parameter

Di Go, fungsi dideklarasikan dengan func. Sintaks tanda tangannya berbeda dari C/Java: tipenya muncul setelah nama parameter, dipisahkan dengan a ruang. Ini adalah pilihan yang lebih baik dibaca dengan lantang — "n of type int" sebagai gantinya dari "int n".

Sintaks dasar

Go
func sum(a int, b int) int {
    return a + b
}

func greet(name string) {
    fmt.Println("ciao", name)
}

Fungsi yang tidak memiliki nilai kembalian hanya menghilangkan tipe kembaliannya.

Parameter berurutan dari tipe yang sama

Jika beberapa parameter berturut-turut memiliki tipe yang sama, Anda dapat mendeklarasikannya itu hanya sekali pada yang terakhir. Ini bersifat idiomatis dan Anda akan melihatnya di mana-mana:

Go
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }

Fungsi yang diekspor vs tidak diekspor

Di Go, visibilitas ditentukan oleh nama: pengidentifikasi yang dimulai dengan huruf besar diekspor (terlihat dari paket lain), yang lainnya bersifat pribadi untuk paket tersebut.

Go
func Sum(a, b int) int { ... }    // esportata
func helper() { ... }              // privata al package

Berfungsi sebagai nilai

Fungsi adalah nilai kelas satu: Anda dapat menetapkannya, meneruskannya, dan kembalikan mereka. Kita akan menggali lebih dalam pelajaran tentang penutupan.

Go
op := sum            // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5

main dan init: dua nama khusus

  • func main() merupakan titik masuk paket main. Tidak ada argumen, tidak ada nilai kembalian.
  • func init() dipanggil secara otomatis saat startup paket (bahkan beberapa kali jika beberapa file mendefinisikan satu). Berguna untuk pengaturan; gunakan dengan hemat.

Cobalah

Latihan#go.m3.l1.e1
Upaya: 0Memuat…

Definisikan fungsi sum(a, b int) int yang mengembalikan a+b, lalu panggil di main dengan (3, 4).

Memuat editor…
Tunjukkan petunjuk

Jenis bersama: `(a, b int)`. Tipe pengembalian berada SETELAH tanda kurung.

Solusi tersedia setelah 3 upaya

Latihan#go.m3.l1.e2
Upaya: 0Memuat…

Definisikan salam(string nama) (tidak ada nilai kembalian) yang mencetak 'ciao <nama>'.

Memuat editor…
Tunjukkan petunjuk

Tidak ada tipe pengembalian jika fungsi tidak mengembalikan apa pun.

Solusi tersedia setelah 3 upaya

Quiz#go.m3.l1.e3
Siap

Kemana perginya tipe parameter di Go?

Go
func f(? ?) {}
Pilihan jawaban

Rekap

  • func name(param type, ...) returnType { ... }.
  • Ketik setelah nama; parameter berurutan dari tipe yang sama → deklarasikan sekali saja.
  • Inisial huruf besar = diekspor; huruf kecil = pribadi untuk paket.
  • Fungsi kelas satu (dapat dialihkan, lumayan).
  • main dan init adalah nama khusus dengan semantik khusus.