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

Variabel dan tipe

Di Go, setiap variabel memiliki tipe statis yang diketahui oleh kompiler: satu kali dideklarasikan, suatu variabel tidak dapat diubah tipenya. Kekakuan ini — sangat berbeda dari JavaScript atau Python — adalah harga yang Anda bayarkan untuk mendapatkan waktu kompilasi kesalahan bukan kesalahan runtime, biner kecil, dan dapat diprediksi kinerja.

Dua bentuk deklarasi

var dengan tipe eksplisit

Go
var name string = "Ada"
var age int = 36
var active bool

Saat Anda menghilangkan nilai (seperti pada var active bool) variabel akan menerima nilai nol dari jenisnya — kita akan membahasnya lagi di pelajaran berikutnya.

Deklarasi singkat :=

Di dalam suatu fungsi Anda dapat menggunakan :=, yang menyimpulkan tipe dari ekspresi di sebelah kanan. Ini adalah bentuk idiomatik dan yang akan Anda gunakan 90% dari waktu:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

Tipe dasar yang akan Anda temui segera

KetikContohCatatan
int42ukurannya tergantung CPU (32 atau 64 bit)
float643.14default untuk literal desimal
string"Ada"UTF-8, tidak dapat diubah
booltrue, falsetidak ada "kebenaran", hanya bool murni
rune'A'alias dari int32, mewakili titik kode Unicode
byte0x7Falias dari uint8

Ada juga int8/16/32/64, uint8/16/32/64, float32 dan complex64/128 ketika Anda membutuhkan ukuran yang tepat (penguraian biner, interop, dll.).

Beberapa deklarasi

Anda dapat mendeklarasikan beberapa variabel dengan blok var atau bentuk jamak :=:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

Variabel dideklarasikan tetapi tidak digunakan

Go sangat ketat: variabel dideklarasikan dan tidak pernah digunakan adalah kompilasi kesalahan, bukan peringatan. Hal yang sama berlaku untuk imports yang tidak digunakan.

Go
func main() {
    x := 42
    // error: x declared and not used
}

Untuk membungkam aturan sementara Anda menggunakan _ (pengidentifikasi kosong):

Go
_ = x

Giliranmu

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

Gunakan var untuk mendeklarasikan nama variabel bertipe string dengan nilai 'Ada' dan mencetaknya.

Memuat editor…
Tunjukkan petunjuk

Bentuk panjangnya adalah `var <nama> <tipe> = <nilai>`.

Solusi tersedia setelah 3 upaya

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

Pada satu baris, gunakan := untuk menetapkan 36 pada usia dan 'Roma' pada kota, lalu cetak keduanya.

Memuat editor…
Tunjukkan petunjuk

Anda dapat menetapkan beberapa variabel sekaligus: `a, b := 1, "due"`.

Solusi tersedia setelah 3 upaya

Quiz#go.m1.l1.e3
Siap

Manakah dari deklarasi berikut yang menghasilkan kesalahan kompilasi jika ditempatkan DI LUAR suatu fungsi?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
Pilihan jawaban

Rekap

  • Tipe statis, otomatis disimpulkan oleh := atau dideklarasikan dengan var.
  • := hanya di dalam fungsi; di tingkat paket hanya var/const.
  • Variabel dan impor yang tidak digunakan = kesalahan kompilasi: gunakan _ untuk membungkamnya.
  • int/float64/string/bool mencakup 90% kasus sehari-hari.