與串聯的if
語句類似,switch
語句提供了乙個多分支條件執行的方法。不過在這裡用乙個專有名詞來代表分支——case
。每乙個case
可以攜帶乙個表示式或乙個型別說明符。前者又可被簡稱為case
表示式。因此,go語言的switch
語句又分為表示式switch
語句和型別switch
語句。
先說表示式switch
語句。在此類switch
語句中,每個case
會攜帶乙個表示式。與if
語句中的條件表示式不同,這裡的case
表示式的結果型別並不一定是bool
。不過,它們的結果型別需要與switch
表示式的結果型別一致。所謂switch
表示式是指switch
語句中要被判定的那個表示式。switch
語句會依據該表示式的結果與各個case
表示式的結果是否相同來決定執行哪個分支。請看下面的示例:
var name string可以看到,在上述// 省略若干條語句
switch name
switch
語句中,name
充當了switch
表示式,而"go"
和"rust"
充當了case
表示式。它們的結果型別是一致的,都是string
。順便說一句,可以有只包含乙個字面量或識別符號的表示式。它們是最簡單的表示式,屬於基本表示式的一種。
請大家注意switch
語句的寫法。switch
表示式必須緊隨switch
關鍵字出現。在後面的花括號中,乙個關鍵字case
、case
表示式、冒號以及後跟的若干條語句組成為一條case
語句。在switch
語句中可以有若干條case
語句。go語言會依照從上至下的順序對每一條case
語句中case
表示式進行求值。只要被發現其表示式與switch
表示式的結果相同,該case
語句就會被選中。它包含的那些語句就會被執行。而其餘的case
語句則會被忽略。
switch
語句中還可以存在乙個特殊的case
——default case
。顧名思義,當沒有乙個常規的case
被選中的時候,default
case
就會被選中。上面示例中就存在乙個default case
。它由關鍵字default
、冒號和後跟的一條語句組成。實際上,default case
不一定被追加在最後。它可以是第乙個case
,或者出現在任意順位上。
另外,與if
語句一樣,switch
語句還可以包含初始化子句,且其出現位置和寫法也如出一轍。如:
names := string好了,我們已經對switch name := names[0]; name
switch
語句的一般形式——表示式switch
語句——有所了解了。下面我們來說說型別switch
語句。它與一般形式有兩點差別。第一點,緊隨case
關鍵字的不是表示式,而是型別說明符。型別說明符由若干個型別字面量組成,且多個型別字面量之間由英文逗號分隔。第二點,它的switch
表示式是非常特殊的。這種特殊的表示式也起到了型別斷言的作用,但其表現形式很特殊,如:v.(type)
,其中v
必須代表乙個介面型別的值。注意,該類表示式只能出現在型別switch
語句中,且只能充當switch
表示式。乙個型別switch
語句的示例如下:
v := 11請注意,我們在這裡把switch i := inte***ce{}(v).(type)
switch
表示式的結果賦給了乙個變數。如此一來,我們就可以在該switch
語句中使用這個結果了。這段**被執行後,標準輸出上會列印出a signed integer: 11. the type is int.
。
最後,我們來說一下fallthrough
。它既是乙個關鍵字,又可以代表一條語句。fallthrough
語句可被包含在表示式switch
語句中的case
語句中。它的作用是使控制權流轉到下乙個case
。不過要注意,fallthrough
語句僅能作為case
語句中的最後一條語句出現。並且,包含它的case
語句不能是其所屬switch
語句的最後一條case
語句。
GO語言基礎 switch語句特性
go語言的switch語句,除去和其他語言一致的基礎使用方法外,還有一些特性 1.每乙個case是可以直接省略break語句的,如果使用break和效果其他語言一致。2.可以使用fallthrough語句,是之匹配後直接使用下乙個case 塊的內容執行。注意 fallthrough語句必須為當前ca...
go語言條件語句switch與select
一 switch語句 go中switch的幾種用法如下面 示例所示 package main import fmt func main 用type switch語句來判斷某個inte ce變數中實際儲存的變數型別 寫法一 switch i x.type 寫法二 var j 0 switch j 寫法...
深入剖析Go語言程式設計中switch語句的使用
switch語句可以讓乙個變數對反對值的列表平等進行測試。每個值被稱為乙個的情況 case 變數被接通檢查每個開關盒 switch case 在go程式設計,switch有兩種型別。表示式switch 在表示式switch,case包含相比較,switch表示式的值。型別switch 在這型別swi...