1. 基本語法
package main
import "fmt"
func main() {var extname = ".css"switch extname {case ".html":fmt.Println("text/html")case ".css":fmt.Println("text/css") // text/csscase ".js":fmt.Println("text/javaScript")default:fmt.Println("找不到此后綴")}
}
2. 條件前可以寫表達式
package main
import "fmt"
func main() {switch extname := ".html"; extname {case ".html":fmt.Println("text/html") // text/htmlcase ".css":fmt.Println("text/css")case ".js":fmt.Println("text/javascript")default:fmt.Println("找不到此后綴")}// 注意 extname 只能在switch語句中訪問fmt.Println(extname) //undefined: extname
}
3. 一個分支可以有多個值
package main
import "fmt"
func main() {var score = "D" switch score {case "A", "B", "C":fmt.Println("及格")case "D":fmt.Println("不及格") // 不及格}
}
4. 分支可以寫表達式
package main
import "fmt"
func main() {var age = 18switch {case age < 24:fmt.Println("好好學習") // 好好學習case age >= 24 && age <= 60:fmt.Println("好好賺錢")case age > 60:fmt.Println("注意身體")default:fmt.Println("輸入錯誤")}
}
5. 條件穿透語句
在C語言中 switch 語句中必須添加 break,否則會進行條件穿透,而在Go 語言中的 switch 語句中不用添加 break,也不會產生條件穿透,但是如果需要條件穿透時可以加上?fallthrough。
package main
import "fmt"
func main() {var age = 30switch {case age < 24:fmt.Println("好好學習")case age >= 24 && age <= 60:fmt.Println("好好賺錢") // 好好賺錢fallthroughcase age > 60:fmt.Println("注意身體") // 注意身體default:fmt.Println("輸入錯誤")}
}