Switch di Go
Switch di Go lebih fleksibel dibanding bahasa lain. Yang paling penting: tidak perlu break — setiap case otomatis berhenti setelah dieksekusi.
Switch Dasar
hari := "Senin"
switch hari {
case "Senin":
fmt.Println("Hari kerja pertama")
case "Sabtu", "Minggu":
fmt.Println("Weekend!")
default:
fmt.Println("Hari kerja biasa")
}
Switch tanpa Ekspresi
Switch tanpa ekspresi berfungsi seperti rangkaian if-else:
suhu := 35
switch {
case suhu >= 40:
fmt.Println("Sangat panas!")
case suhu >= 30:
fmt.Println("Panas")
case suhu >= 20:
fmt.Println("Nyaman")
default:
fmt.Println("Dingin")
}
Fallthrough
Jika kamu ingin lanjut ke case berikutnya (seperti behavior default di C/Java), gunakan keyword fallthrough:
x := 1
switch x {
case 1:
fmt.Println("Satu")
fallthrough
case 2:
fmt.Println("Dua")
}
// Output: Satu, Dua
Type Switch
Go bisa switch berdasarkan tipe data (berguna dengan interface{}):
var nilai interface{} = "hello"
switch v := nilai.(type) {
case int:
fmt.Println("Integer:", v)
case string:
fmt.Println("String:", v)
default:
fmt.Println("Tipe lain")
}