Golang seperti kebanyakan bahasa pengaturcaraan lain mempunyai pernyataan suis . Pernyataan suis dalam Golang membolehkan anda menilai pembolehubah atau ungkapan dalam berbilang kes dan sering digunakan apabila menulis berbilang pernyataan if-else menjadikan kod itu kelihatan hodoh dan berulang.

Dalam Go, pernyataan suis ialah pernyataan percabangan berbilang arah yang secara berkesan mengarahkan pelaksanaan berdasarkan nilai (atau jenis) ungkapan. Terdapat dua jenis penyataan suis utama dalam Go :
Contohnya:
package main
import "fmt"
func main() {
day := 4
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
}
Tukar sintaks pernyataan dalam Golang
switch optstatement; optexpression {
case expression1:
// Khối code
case expression2: # Expression Switch
// Khối code
default:
// Khối code
}
switch var := interfaceValue.(type) {
case type1:
// Khối code
case type2: # Type Switch
// Khối code
default:
// Khối code
}
Suis Ekspresi
Expression Switch menilai ungkapan dan bertukar kepada kes berdasarkan nilai ungkapan tersebut. Jika tiada ungkapan disediakan, suis lalai kepada true .
Sintaks
switch optstatement; optexpression {
case expression1:
// Khối code
case expression2:
// Khối code
default:
// Khối code
}
optstatement: Pernyataan pilihan (cth. perisytiharan pembolehubah).
optexpression: Ungkapan pilihan (jika ditinggalkan, lalai kepada true ).
Contoh dengan arahan pilihan
Di sini memperkenalkan pernyataan pilihan yang mengisytiharkan pembolehubah hari . Pernyataan suis kemudian menilai hari mengikut kes yang berbeza.
package main
import "fmt"
func main() {
switch day := 4; day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
}
Keputusan:
Thursday
Contoh dengan Ungkapan pilihan
Jika tiada ungkapan dinyatakan, pernyataan suis dalam Golang akan menganggap ungkapan itu benar. Ini membolehkan kami menggunakan syarat boolean dalam pernyataan kes.
package main
import "fmt"
func main() {
day := 4
switch {
case day == 1:
fmt.Println("Monday")
case day == 4:
fmt.Println("Thursday")
case day > 5:
fmt.Println("Weekend")
default:
fmt.Println("Invalid day")
}
}
Hasilnya
Thursday
Taip Suis
Suis Jenis digunakan untuk cawangan pada jenis nilai antara muka, dan bukannya nilainya. Ini amat berguna apabila berurusan dengan pembolehubah jenis yang tidak diketahui.
Sintaks
switch var := interfaceValue.(type) {
case type1:
// Khối code
case type2:
// Khối code
default:
// Khối code
}
Contohnya:
Contoh ini menggunakan pembolehubah hari yang sama tetapi dibalut dalam antara muka{} untuk menggambarkan penghantaran jenis.
package main
import "fmt"
func main() {
var day interface{} = 4
switch v := day.(type) {
case int:
switch v {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
default:
fmt.Printf("Unknown type: %T\n", v)
}
}
Keputusan:
Thursday