golang switch語句的靈活寫法介紹

2022-09-27 05:24:11 字數 1647 閱讀 3976

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...