91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言之Switch語句怎么使用

發布時間:2022-06-30 09:49:19 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

這篇“Go語言之Switch語句怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go語言之Switch語句怎么使用”文章吧。

基本語法

在講述if-else時已經提到,如果有多個判斷條件,Go語言中提供了Switch-Case的方式。如果switch后面不帶條件相當于switch true

// Convert hexadecimal character to an int value
 switch {
 case '0' <= c && c <= '9':
     return c - '0'
 case 'a' <= c && c <= 'f':
     return c - 'a' + 10
 case 'A' <= c && c <= 'F':
     return c - 'A' + 10
 }
 return 0

fallthrough使用方法

默認情況下,case滿足執行后會進行break,后面case即使滿足條件也不再循環,如果想繼續執行,則需要添加fallthrough,

package main

import "fmt"

func main() {
    i := 3
    switch i {
    case i > 0:
        fmt.Println("condition 1 triggered")
        fallthrough
    case i > 2:
        fmt.Println("condition 2 triggered")
        fallthrough
    default:
        fmt.Println("Default triggered")
    }
}

此時所有的case都會被執行

condition 1 triggered
condition 2 triggered
Default triggered

多條件匹配

如果同一個條件滿足,也可以這樣羅列到同一條件,相當于或條件

switch i {
    case 0, 1:
        f()
    default:
        g()
}

判斷接口(interface)類型

空接口

后面我們會講到接口,通過switch可以對type進行判斷,獲取接口的真實類型。

package main
  
import "fmt"
  
func main() {
    var value interface{}
    switch q:= value.(type) {
       case bool:
       fmt.Println("value is of boolean type")
       case float64:
       fmt.Println("value is of float64 type")
       case int:
       fmt.Println("value is of int type")
       default:
       fmt.Printf("value is of type: %T", q)
   }
}

在上面的例子中,我們定義了一個空接口

var value interface{}

同時使用switch來判斷類型

switch q:= value.(type) {

由于空接口沒有內容,所以類型為nil,觸發了default

value is of type: <nil>

獲取實際類型

我們對上面的例子進行改造,同時讓空接口擁有實際的值,再來看看執行的效果

package main

import "fmt"

func valueType(i interface{}) {
    switch q:= i.(type) {
       case bool:
       fmt.Println("value is of boolean type")
       case float64:
       fmt.Println("value is of float64 type")
       case int:
       fmt.Println("value is of int type")
       default:
       fmt.Printf("value is of type: %T\n", q)

   }
}

func main() {
    person := make(map[string]interface{}, 0)

    person["name"] = "Alice"
    person["age"] = 21
    person["height"] = 167.64

    fmt.Printf("%+v\n", person)

    for _, value := range person {
        valueType(value)
    }
}

這里有幾個還沒有講到的知識點:

  • 函數的定義方法

  • 定義了一個map,但是值的類型為空接口,意思就是可以是任何類型的值,這在接口章節還會詳細講解,所以大家看到這里不要糾結,繼續往下看

  • 賦值時,特意給value不同的類型, string/int/float類型

最后通過循環將變量傳給valueType函數,看看程序輸出什么結果

map[age:21 height:167.64 name:Alice]
value is of type: string
value is of int type
value is of float64 type

以上就是關于“Go語言之Switch語句怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁阳县| 夏河县| 子长县| 托克逊县| 辽源市| 林芝县| 石林| 闸北区| 工布江达县| 哈巴河县| 游戏| 镇坪县| 阳信县| 鹤壁市| 搜索| 临潭县| 敦化市| 南雄市| 台北县| 屏山县| 阿图什市| 威远县| 吴桥县| 巴南区| 财经| 潼南县| 和平区| 长丰县| 天全县| 彝良县| 定日县| 隆德县| 寿宁县| 巴中市| 丹凤县| 民勤县| 白河县| 富顺县| 岳阳县| 资阳市| 绥滨县|