Go 中的 Switch 語句

Golang 和大多數其他程式語言一樣,都有switch 語句Golang中的 switch 語句 可讓您在多種情況下評估變數或表達式,並且通常在編寫多個 if-else 語句使程式碼看起來醜陋且重複時使用。

Go 中的 Switch 語句

在 Go 中,switch 語句是一個多向分支語句,它根據表達式的值(或類型)有效地指導執行。 Go 中有兩種主要類型的 switch 語句

  • 表情切換
  • 類型切換

例如:

package main
import "fmt"

func main() {
    day := 4
    switch day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    case 4:
        fmt.Println("Thursday")
    case 5:
        fmt.Println("Friday")
    default:
        fmt.Println("Invalid day")
    }
}

Golang 中的 Switch 語句語法

switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:                                                          # Expression Switch
    // Khối code
default:
    // Khối code
}

switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:                                                                    # Type Switch
    // Khối code
default:
    // Khối code
}

表情切換

表達式開關評估一個表達式並根據該表達式的值切換到一個案例。如果沒有提供表達式,則開關預設為true

句法

switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:
    // Khối code
default:
    // Khối code
}

optstatement:可選語句(例如變數宣告)。
optexpression:可選表達式(如果省略,則預設為true)。

帶有可選命令的範例

這裡引入了一個可選語句,用於聲明一個日期變數。然後, switch語句根據不同的情況評估日期。

package main
import "fmt"
func main() {
    switch day := 4; day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    case 4:
        fmt.Println("Thursday")
    case 5:
        fmt.Println("Friday")
    default:
        fmt.Println("Invalid day")
    }
}

結果:

Thursday

帶有可選表達式的範例

如果沒有指定表達式,Golang 中的 switch 語句將假定表達式為真。這使我們能夠在 case 語句中使用布林條件。

package main
import "fmt"

func main() {
    day := 4

    switch {
    case day == 1:
        fmt.Println("Monday")
    case day == 4:
        fmt.Println("Thursday")
    case day > 5:
        fmt.Println("Weekend")
    default:
        fmt.Println("Invalid day")
    }
}

結果

Thursday

類型切換

類型切換用於對介面值的類型進行分支,而不是對其值進行分支。這在處理未知類型的變數時特別有用。

句法

switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:
    // Khối code
default:
    // Khối code
}

例如:

此範例使用相同的day變數但包裝在interface{}中以說明類型轉換。

package main
import "fmt"
func main() {
    var day interface{} = 4
    switch v := day.(type) {
    case int:
        switch v {
        case 1:
            fmt.Println("Monday")
        case 2:
            fmt.Println("Tuesday")
        case 3:
            fmt.Println("Wednesday")
        case 4:
            fmt.Println("Thursday")
        case 5:
            fmt.Println("Friday")
        default:
            fmt.Println("Invalid day")
        }
    default:
        fmt.Printf("Unknown type: %T\n", v)
    }
}

結果:

Thursday
Sign up and earn $1000 a day ⋙

Leave a Comment

Go 中的關鍵字

Go 中的關鍵字

關鍵字-關鍵字是語言中用於某些內在過程或代表某些預定義動作的字詞。以下是您需要了解的有關 Golang 中的關鍵字的知識。

Golang中的資料類型

Golang中的資料類型

資料類型指定有效的 Go 變數可以包含的資料類型。 Go語言中,類型分為以下四類:

Golang 中的函數參數

Golang 中的函數參數

Go 支援兩種主要的傳遞參數的方式:按值傳遞和按引用傳遞。 Go 預設使用按值傳遞。

Golang中傳回多個值的函數

Golang中傳回多個值的函數

在Go語言中,允許使用return語句從函數傳回多個值。換句話說,在函數中,一個return語句可以傳回多個值。

在 Golang 中使用選擇語句時需要了解的案例

在 Golang 中使用選擇語句時需要了解的案例

在本文中,我們將學習如何使用預設情況來避免死鎖。但首先,讓我們先了解一下使用 Golang select 指令時出現死鎖的情況是什麼?

Golang 中的匿名結構和字段

Golang 中的匿名結構和字段

Golang 中的匿名結構是沒有名稱的一次性臨時結構,而匿名欄位允許嵌入未命名的欄位。

如何在 Golang 中使用 Rune

如何在 Golang 中使用 Rune

Golang 中的 Runes 是什麼?如何在 Golang 中使用 Rune?文章會告訴你答案。

如何在 Golang 中使用運算符

如何在 Golang 中使用運算符

運算符允許我們對操作數執行不同類型的操作。在 Go語言中,運算子可以根據其不同的功能進行分類。

Golang 中的 Void 標識符

Golang 中的 Void 標識符

Golang 中的 _(底線)稱為空白標識符。標識符是程式組件的使用者定義名稱,用於識別目的。

如何用 Golang 創建基本程序

如何用 Golang 創建基本程序

你好世界!是任何程式語言中的第一個基本程式。您可以按照以下步驟使用 Golang 編寫第一個程式。

如何在 Windows 上安裝 Go

如何在 Windows 上安裝 Go

Golang 可以輕鬆安裝在 Windows 上。以下是在 Windows 上安裝 Golang 的詳細逐步指南。

Golang 中同名的方法

Golang 中同名的方法

Golang允許在同一個套件中建立兩個或多個同名的方法,但是這些方法的接收者必須是不同的類型。

Go 中的函數

Go 中的函數

在 Go 中,函數是執行特定任務的程式碼區塊,可以在整個程式中重複使用以節省記憶體、提高可讀性並節省時間。

Go 中的變數作用域

Go 中的變數作用域

Golang 中變數的範圍決定了程式中可存取該變數的部分。在 Go 中,所有標識符都有一個在編譯時確定的詞法作用域。

最新的 Tay Du VNG 代碼以及如何輸入代碼

最新的 Tay Du VNG 代碼以及如何輸入代碼

最新的 Tay Du VNG 代碼為玩家提供了一系列有吸引力的獎勵,例如藥水、銀、金錠、獎勵箱和一系列其他物品,以幫助新玩家開啟一般回合。

Instagram 現在允許用戶安排和固定直接訊息

Instagram 現在允許用戶安排和固定直接訊息

Instagram 的直接訊息功能現在增加了許多新功能,包括預定的直接訊息,您可以提前寫作並設定在以後發送,最多可提前 29 天。

谷歌推出最新人工智慧工具“職業夢想家”,幫助人們選擇完美的職業

谷歌推出最新人工智慧工具“職業夢想家”,幫助人們選擇完美的職業

無論您是剛踏入職場還是正在轉型進入新行業,Google 的實驗性職業夢想家都旨在將您與合適的職位聯繫起來。

馬克·祖克柏「討厭」蘋果,但仍然不得不使用 Macbook,但這很奇怪

馬克·祖克柏「討厭」蘋果,但仍然不得不使用 Macbook,但這很奇怪

最近,馬克·祖克柏發布了一張自己坐在筆記型電腦前工作的照片。這是一台筆記型電腦(應該是 MacBook),但被咬過的蘋果標誌卻不見了。

警告:如果您擁有舊的 D-Link VPN 路由器,請將其丟棄!

警告:如果您擁有舊的 D-Link VPN 路由器,請將其丟棄!

製造商已確認在一些不再受官方支援的設備中發現了嚴重漏洞。

如何在 iPhone 上使用擬我表情

如何在 iPhone 上使用擬我表情

使用 iPhone 的擬我表情,您可以透過臉部表情為訊息和 FaceTime 對話增添個性。

自動將資料夾備份到 Google 相簿的說明

自動將資料夾備份到 Google 相簿的說明

Google Photos 帳戶現在可以自動備份您電腦上特定資料夾中的照片和影片。

為什麼複選框是未充分利用的 Excel 功能?

為什麼複選框是未充分利用的 Excel 功能?

從表面上看,Excel 複選框似乎是一個非常簡單的功能 - 這可能是它們經常被忽視的原因。

如何在 Chromebook 上錄製螢幕視頻

如何在 Chromebook 上錄製螢幕視頻

螢幕錄製是一項非常有用的功能,但並非所有作業系統都內建此功能。

在 Coin Master 中賺取旋轉的方法,賺取 Coin Master 旋轉

在 Coin Master 中賺取旋轉的方法,賺取 Coin Master 旋轉

在 Coin Master 中賺取旋轉的方式有很多,主要是您必須努力才有機會獲得一系列旋轉。 Quantrimang.com 匯集了多種方法來幫助您獲得大量 Coin Master 旋轉。

如何在 Google 文件中建立清單

如何在 Google 文件中建立清單

當我們對某些內容進行調查或研究時,向Google Docs新增清單是必要的步驟。

為什麼美國選擇木材而不是混凝土來建造房屋?

為什麼美國選擇木材而不是混凝土來建造房屋?

美國的房子是用什麼蓋的?答案是木材。為什麼美國的房子不用水泥來建造,而是用木頭建造?讓我們一起來了解一下吧!

2025年重大天文事件

2025年重大天文事件

2025 年太空和天文學領域將會發生哪些變化?讓我們一起探索今年不容錯過的天文時刻!

最新的 Strinova 代碼以及如何兌換代碼

最新的 Strinova 代碼以及如何兌換代碼

Code Strinova 將為您提供禮物,這些禮物是您再次尋找光明的旅程中不可或缺的救星。

修仙最新失業碼及兌換獎勵方法

修仙最新失業碼及兌換獎勵方法

以下失業耕耘完整代碼將為您帶來一系列獎勵。