Materi
if di Go ditulis tanpa tanda kurung di sekitar kondisinya, dan kurung kurawal wajib walau isinya satu baris. Kondisinya harus bertipe bool. Angka 0 atau teks kosong tidak otomatis dianggap salah seperti di Python atau JavaScript, sehingga if stok { ... } untuk stok bertipe int ditolak kompilator.
if boleh diawali pernyataan pendek yang dipisah titik koma: if sisa := stok - pesanan; sisa < 0 { ... }. Variabel sisa hanya hidup di dalam if itu beserta cabang else-nya. Memakainya sesudah kurung kurawal penutup menghasilkan galat kompilasi undefined: sisa.
switch membandingkan satu nilai dengan setiap case dari atas ke bawah dan menjalankan case pertama yang cocok saja. Tidak perlu break: Go tidak meneruskan ke case berikutnya kecuali diminta dengan kata kunci fallthrough. Satu case boleh memuat beberapa nilai, case "Sabtu", "Minggu":, dan default dijalankan bila tidak ada case yang cocok. switch tanpa ekspresi bekerja seperti rantai if-else if dan juga berhenti di case benar yang pertama.
package main
import "fmt"
func main() {
hari := "Minggu"
switch hari {
case "Sabtu", "Minggu":
fmt.Println("Libur")
default:
fmt.Println("Masuk kerja")
}
// Libur
if sisa := 12 - 15; sisa < 0 {
fmt.Println("Kurang", -sisa) // Kurang 3
}
}