switch是很容易理解的,先來個**,執行起來
package main
import (
"fmt"
"runtime")
func main()
}runtine執行時獲取當前的作業系統,使用goos。還和if for之類的習慣一樣,可以在前面宣告賦值變數。我們就在這裡來獲取作業系統的資訊了。
os := runtime.goos;
{}裡的case比較容易理解。作業系統是 "darwin" 就列印"os x.";作業系統是 "linux" 就列印"linux";其他的都直接列印系統類別。
在go語言的switch中除非以fallthrough語句結束,否則分支會自動終止。
package main
import (
"fmt"
"runtime")
func main()
}增加了當前的系統的case選項"windows",還在這個分支使用了fallghrough。
如果你再注釋掉 fallthrough,或乾脆刪除 fallthrough,再執行,就會發現,那個穿透的效果沒有了。
switch 的條件從上到下的執行,當匹配成功的時候停止。如果匹配成功的這個分支是以fallthrough結束的,那麼下乙個緊鄰的分支也會被執行。
switch的沒有條件的用法。這其實相當於switch true一樣。每乙個case選項都是bool表示式,值為www.cppcns.comtrue的分支就會被執行,或者執行default。
package main
import (
"fmt"
"time")
func main()
}補充:記golang switch的乙個「坑」
switch分支語句在各個程式語言中都很常用,能夠根據條件選中乙個或多個case語句進行執行,習慣於c、c++語言程式設計的都知道,在c、c++中switch分支判斷條件會依次遍歷每個case,當遇到符合條件的case時,便會執行該case中的語句,直到遇到case中顯示的break語句才會終止switch流程,如果乙個case中沒有顯示的break此case,程式便會執行下乙個case(如果存在的話)。
對於從c、c++剛轉到go語言的程式設計師來說,這裡面便存在乙個「坑」,本人在開發過程中也踩過這個「坑」,那便是go語言在switch分支語句的每個case中會自動加上乙個break語句,也就是說在go語言中程式進入了乙個case流程,不管程式中有沒有顯示的break此case,程式都不會繼續執行其他的case流程,而是直接退出整個switch流程,這裡做乙個簡單的實驗。
package main
import "fmt"
func main()
return
}程式的執行結果如下:
num is 10
package main
import "fmt"
func main()
return
}程式的執行結果如下:
num is 10
很明顯,在每個case語句中是否顯示的新增break語句都只會執行其中的乙個分支流程,這對於想要通過break來控制每次執行case數量的程式設計師來說確實是乙個不大不小的「坑」。
本文標題: golang switch語句的靈活寫法介紹
本文位址:
Golang switch語句總結
switch 條件表示式執行流程 1 計算條件表示式的值value 2 如果value滿足某條case語句,則執行該語句,執行完跳出switch語句 3 如果value不滿足所有的case語句 3.1 如果有default,則執行該語句,執行完跳出switch語句 3.2 如果沒有default,則...
python的語句 Python的語句
python中的兩種語句 1 if條件控制語句 格式 if a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a比b小 if else a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a...
SQL 語句的TOP,Distinct語句
select top 3 from dbo.mystudent 查詢student表中前3條所有的資料 select top 3 s name,s gender,s address,s age from dbo.mystudent 查詢student表中前3條部分的資料 select top 3 p...