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 中,所有標識符都有一個在編譯時確定的詞法作用域。

最新的 Huyen Tuong 3Q 代碼以及如何輸入代碼

最新的 Huyen Tuong 3Q 代碼以及如何輸入代碼

最新的 Huyen Tuong 3Q Code 專為玩家打造,為新玩家首次加入 3Q 戰場時提供最必要的物品。

菲奧娜 DTCL:菲奧娜·德瑪西亞挑戰者的標準版本

菲奧娜 DTCL:菲奧娜·德瑪西亞挑戰者的標準版本

本季9.5的真言競技場菲奧娜必將取代亞索成為4金挑戰者主力。

為什麼要單膝跪地求婚?

為什麼要單膝跪地求婚?

中世紀的騎士(以及《權力的遊戲》中的瓊恩·雪諾)以跪姿而聞名,這可能影響了今天的求婚方式。這就是為什麼男人要單膝跪地向女友求婚。

正向的引言、快樂的狀態、簡短的樂觀和正向的狀態

正向的引言、快樂的狀態、簡短的樂觀和正向的狀態

哪種開朗樂觀的狀態最能幫助您振奮精神?文章將為你總結一些簡短、有意義、快樂、樂觀的狀態,讓你快速恢復精神。

維生素 B12 缺乏的健康風險

維生素 B12 缺乏的健康風險

您的紅血球、神經和大腦都依賴維生素 B12。但有些人攝取的這種營養素不足,維生素 B12 缺乏會導致許多健康問題。

如果每天都戴胸罩,你的身體會發生什麼變化?

如果每天都戴胸罩,你的身體會發生什麼變化?

除了為您的服裝提供基礎並讓您看起來更漂亮之外,胸罩還可以透過其他多種方式為您帶來好處。

ChatGPT 全球崩潰

ChatGPT 全球崩潰

11月22日上午,OpenAI的ChatGPT聊天機器人出現大面積問題,全球眾多用戶無法使用這款AI應用。

如何使用WiFi分析儀來提升您的Wi-Fi連接

如何使用WiFi分析儀來提升您的Wi-Fi連接

僅僅購買新的 Wi-Fi 路由器並不足以增強您的網路。為了充分利用您的 Wi-Fi,您需要確保獲得最佳的範圍、訊號和頻率。

身體與我們溝通的方式常常被忽視

身體與我們溝通的方式常常被忽視

我們的身體就像機器,不斷發出訊號和訊息,但我們很少注意它們。讓我們看看我們的身體想透過下面的訊號告訴我們什麼。

世界上最高的陸地動物

世界上最高的陸地動物

世界上最高的動物是?本文將為您總結陸地上最大的動物。

計算機中的基本測量單位

計算機中的基本測量單位

位元 (Bit) 是二進位數字 (Binary Digit) 的縮寫,是電腦記憶體中最小單位的術語,可以儲存兩種資訊狀態之一:0 或 1(可以理解為電腦中電晶體的開啟或關閉狀態)。

如何利用提醒功能改善你的筆記習慣

如何利用提醒功能改善你的筆記習慣

良好的記憶習慣始於提醒——它們在正確的時間出現,捕捉那些轉瞬即逝的想法。

7 款免費應用,幫助你瞬間提升手機拍照質量

7 款免費應用,幫助你瞬間提升手機拍照質量

仍有許多免費且功能強大的攝影工具可用於增強您的照片。

讓 Google 搜尋小工具更實用的技巧

讓 Google 搜尋小工具更實用的技巧

Google 搜尋小工具可讓您快速存取 Google 搜尋和發現提要,以及語音搜尋和 Google Lens。

如何登入並關閉密碼過期提醒

如何登入並關閉密碼過期提醒

如果您在 Windows 登入畫面上看到「您的密碼已過期,必須變更」訊息,這是因為 Windows 本機帳戶的密碼預設每 42 天過期一次。