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
var name string = "Ada"
var age int = 36
var active boolSaat 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:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolTipe dasar yang akan Anda temui segera
| Ketik | Contoh | Catatan |
|---|---|---|
int | 42 | ukurannya tergantung CPU (32 atau 64 bit) |
float64 | 3.14 | default untuk literal desimal |
string | "Ada" | UTF-8, tidak dapat diubah |
bool | true, false | tidak ada "kebenaran", hanya bool murni |
rune | 'A' | alias dari int32, mewakili titik kode Unicode |
byte | 0x7F | alias 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 :=:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemVariabel 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.
func main() {
x := 42
// error: x declared and not used
}Untuk membungkam aturan sementara Anda menggunakan _ (pengidentifikasi kosong):
_ = xGiliranmu
Gunakan var untuk mendeklarasikan nama variabel bertipe string dengan nilai 'Ada' dan mencetaknya.
Tunjukkan petunjuk
Bentuk panjangnya adalah `var <nama> <tipe> = <nilai>`.
Solusi tersedia setelah 3 upaya
Pada satu baris, gunakan := untuk menetapkan 36 pada usia dan 'Roma' pada kota, lalu cetak keduanya.
Tunjukkan petunjuk
Anda dapat menetapkan beberapa variabel sekaligus: `a, b := 1, "due"`.
Solusi tersedia setelah 3 upaya
Manakah dari deklarasi berikut yang menghasilkan kesalahan kompilasi jika ditempatkan DI LUAR suatu fungsi?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Rekap
- Tipe statis, otomatis disimpulkan oleh
:=atau dideklarasikan denganvar. :=hanya di dalam fungsi; di tingkat paket hanyavar/const.- Variabel dan impor yang tidak digunakan = kesalahan kompilasi: gunakan
_untuk membungkamnya. int/float64/string/boolmencakup 90% kasus sehari-hari.