最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang?switch的語法使用小結

 更新時間:2026年02月05日 09:16:33   作者:Lai助官方賬號  
本文主要介紹了golang?switch的語法使用小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在 Go 語言中,switch 語句提供了一種根據表達式的值執(zhí)行不同代碼塊的機制。它比多個 if-else 語句更清晰、更易于維護,尤其適用于多路分支的情況。

基本語法

switch expression {
case value1:
    // 表達式等于 value1 時執(zhí)行的代碼塊
case value2:
    // 表達式等于 value2 時執(zhí)行的代碼塊
...
default:
    // 以上條件都不滿足時執(zhí)行的代碼塊(可選)
}

示例代碼

以下是一些 switch 語句的常見用法示例:

1. 基本的switch語句

package main

import "fmt"

func main() {
    day := 3

    switch day {
    case 1:
        fmt.Println("星期一")
    case 2:
        fmt.Println("星期二")
    case 3:
        fmt.Println("星期三")
    case 4:
        fmt.Println("星期四")
    case 5:
        fmt.Println("星期五")
    case 6:
        fmt.Println("星期六")
    case 7:
        fmt.Println("星期日")
    default:
        fmt.Println("無效的天數(shù)")
    }
}

2.不帶表達式的switch

在 Go 中,switch 后面的表達式可以省略,此時相當于 switch true,常用于替代多個 if-else 語句。

package main

import "fmt"

func main() {
    num := 5

    switch {
    case num < 0:
        fmt.Println("負數(shù)")
    case num == 0:
        fmt.Println("零")
    case num > 0 && num < 10:
        fmt.Println("正數(shù)且小于 10")
    case num >= 10:
        fmt.Println("正數(shù)且大于或等于 10")
    default:
        fmt.Println("不可能的情況")
    }
}

3. 多值匹配

可以為一個 case 指定多個匹配值,值之間用逗號分隔。

package main

import "fmt"

func main() {
    grade := 'B'

    switch grade {
    case 'A', 'B', 'C':
        fmt.Println("成績良好")
    case 'D':
        fmt.Println("成績及格")
    case 'E', 'F':
        fmt.Println("成績不及格")
    default:
        fmt.Println("無效的成績等級")
    }
}

4. 類型判斷

switch 還可以用于判斷變量的類型,這在處理接口類型時非常有用。

package main

import "fmt"

func main() {
    var value interface{} = "Hello, Go!"

    switch v := value.(type) {
    case int:
        fmt.Printf("整數(shù): %d\n", v)
    case string:
        fmt.Printf("字符串: %s\n", v)
    case bool:
        fmt.Printf("布爾值: %v\n", v)
    case nil:
        fmt.Println("空值")
    default:
        fmt.Printf("未知類型: %T\n", v)
    }
}

注意事項

  • 自動跳轉:Go 語言的 switch 語句不會自動從一個 case 跳轉到下一個 case,每個 case 的代碼塊執(zhí)行完成后會自動退出 switch 語句。
  • default 子句:default 子句是可選的,用于處理所有不匹配的情況。
  • 變量聲明:可以在 switch 語句中聲明變量。

希望這些示例能幫助你更好地理解和使用 Go 語言中的 switch 語句。

你希望在匹配某個 case 后,繼續(xù)執(zhí)行下一個 case 的代碼塊,而不是退出 switch 語句。這時就可以使用 fallthrough。

以下是一個使用 fallthrough 的示例:

package main

import "fmt"

func main() {
    day := 3

    switch day {
    case 1:
        fmt.Println("今天是星期一")
        fallthrough
    case 2:
        fmt.Println("明天是星期二")
        fallthrough
    case 3:
        fmt.Println("后天是星期三")
        fallthrough
    case 4:
        fmt.Println("大后天是星期四")
        fallthrough
    case 5:
        fmt.Println("再后天是星期五")
        fallthrough
    case 6:
        fmt.Println("又是星期六了")
        fallthrough
    case 7:
        fmt.Println("星期日到了")
    default:
        fmt.Println("無效的天數(shù)")
    }
}

輸出

今天是星期一
明天是星期二
后天是星期三
大后天是星期四
再后天是星期五
又是星期六了
星期日到了

說明

  • fallthrough 的作用:在每個 case 的末尾使用 fallthrough,可以讓程序繼續(xù)執(zhí)行下一個 case 的代碼,即使下一個 case 的條件不匹配。
  • 執(zhí)行流程:當 day 的值為 3 時,程序匹配到 case 3,并執(zhí)行 fmt.Println("后天是星期三"),然后 fallthrough 使程序繼續(xù)執(zhí)行 case 4 的代碼,依此類推。
  • default 子句:如果 day 的值超出了 1 到 7 的范圍,程序將執(zhí)行 default 子句中的代碼。

注意事項

  • 顯式意圖:fallthrough 需要顯式地寫在 case 代碼塊的末尾,不能省略。
  • 謹慎使用:雖然 fallthrough 提供了額外的控制流程,但過度使用可能會使代碼難以理解,應根據實際需求謹慎使用。

到此這篇關于golang switch的語法使用小結的文章就介紹到這了,更多相關golang switch內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Go語言連接和操作數(shù)據庫的基本步驟

    使用Go語言連接和操作數(shù)據庫的基本步驟

    在Go語言中,連接和操作數(shù)據庫通常使用database/sql包,它提供了一個數(shù)據庫抽象層,支持多種數(shù)據庫引擎,如MySQL、PostgreSQL、SQLite等,下面我將以MySQL為例,詳細講解如何使用Go語言連接和操作數(shù)據庫,需要的朋友可以參考下
    2024-06-06
  • Golang開發(fā)gRPC服務入門介紹

    Golang開發(fā)gRPC服務入門介紹

    這篇文章主要介紹了Golang開發(fā)gRPC服務,Golang開發(fā)gRPC應用程序的套路也已經很清晰,這篇文章就來做一個簡單的介紹,算是入門,需要的朋友可以參考下
    2022-04-04
  • golang逐行讀取文件的操作

    golang逐行讀取文件的操作

    這篇文章主要介紹了golang逐行讀取文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言學習筆記之文件讀寫操作詳解

    Go語言學習筆記之文件讀寫操作詳解

    這篇文章主要為大家詳細介紹了Go語言對文件進行讀寫操作的方法,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的可以參考一下
    2022-05-05
  • 淺析Golang中變量與常量的聲明與使用

    淺析Golang中變量與常量的聲明與使用

    變量、常量的聲明與使用是掌握一門編程語言的基礎,這篇文章主要為大家詳細介紹了Golang中變量與常量的聲明與使用,需要的可以參考一下
    2023-04-04
  • Golang學習筆記(二):類型、變量、常量

    Golang學習筆記(二):類型、變量、常量

    這篇文章主要介紹了Golang學習筆記(二):類型、變量、常量,本文講解了基本類型、保留字、變量、常量、枚舉、運算符、指針、分組聲明等內容,需要的朋友可以參考下
    2015-05-05
  • Go語言中的range用法實例分析

    Go語言中的range用法實例分析

    這篇文章主要介紹了Go語言中的range用法,實例分析了range的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • GoLang unsafe包詳細講解

    GoLang unsafe包詳細講解

    從golang的定義來看,unsafe 是類型安全的操作。顧名思義,它應該非常謹慎地使用; unsafe可能很危險,但也可能非常有用。例如,當使用系統(tǒng)調用和Go結構必須具有與C結構相同的內存布局時,您可能別無選擇,只能使用unsafe
    2022-10-10
  • 使用Golang的gomail庫實現(xiàn)郵件發(fā)送功能

    使用Golang的gomail庫實現(xiàn)郵件發(fā)送功能

    本篇博客詳細介紹了如何使用Golang語言中的gomail庫來實現(xiàn)郵件發(fā)送的功能,首先,需要準備工作,包括安裝Golang環(huán)境、gomail庫,以及申請126郵箱的SMTP服務和獲取授權碼,其次,介紹了在config文件中配置SMTP服務器信息的步驟
    2024-10-10
  • GO將mysql?中?decimal?數(shù)據類型映射到?protobuf的操作方法

    GO將mysql?中?decimal?數(shù)據類型映射到?protobuf的操作方法

    這篇文章主要介紹了go如何優(yōu)雅地將?mysql?中?decimal?數(shù)據類型映射到?protobuf,本文主要展示一下在 protobuf中 float與double的一個區(qū)別,結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論

南雄市| 榕江县| 虹口区| 阜康市| 金川县| 东海县| 云和县| 香港 | 石楼县| 麦盖提县| 尼木县| 南京市| 文山县| 开鲁县| 麻城市| 岑溪市| 乐亭县| 太和县| 瑞昌市| 祁东县| 临颍县| 光泽县| 彩票| 四平市| 邵东县| 苏尼特左旗| 中西区| 江阴市| 乌苏市| 年辖:市辖区| 睢宁县| 天峻县| 宁国市| 吴旗县| 黑龙江省| 灯塔市| 马山县| 大名县| 宁阳县| 南溪县| 稷山县|