Like Share Discussion Bookmark Smile

J.J. Huang   2025-01-24   Getting Started Golang 01.基本型別   瀏覽次數:次   DMCA.com Protection Status

Go | 初步了解「布林」型別

💬 簡介

布林型別(Boolean Types)是最基本且常用的型別之一。布林型別的值只有兩種:truefalse。它常用於條件判斷、控制流程等場景。

理解布林型別的特性和運用,可以幫助寫出更加清晰、易懂的程式碼。

本篇文章將介紹 Go 語言中的布林型別,並深入探討如何使用布林型別來處理程式中的邏輯判斷。

圖片來源:Gophers(地鼠造型的原創者為 Renee French)


🔎 Go 語言中的布林型別

1️⃣ 布林型別的基本概念

布林型別是一個邏輯型別,通常用於表示真或假。布林型別在 Go 語言中非常簡單,只會有兩個可能的值:

  • true(真)
  • false(假)
  • 範例:布林型別的使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package main

    import "fmt"

    func main() {
    var isActive bool = true
    var isComplete bool = false

    fmt.Println("isActive:", isActive) // 輸出:isActive: true
    fmt.Println("isComplete:", isComplete) // 輸出:isComplete: false
    }

2️⃣ 布林型別的運算

布林型別常與邏輯運算符一起使用,例如 &&(邏輯與)、||(邏輯或)和 !(邏輯非),用來處理邏輯運算。

  • 範例:布林運算符的使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package main

    import "fmt"

    func main() {
    var a bool = true
    var b bool = false

    fmt.Println("a && b:", a && b) // 輸出:a && b: false
    fmt.Println("a || b:", a || b) // 輸出:a || b: true
    fmt.Println("!a:", !a) // 輸出:!a: false
    }

    📝這個範例展示了邏輯運算符的使用,&& 用於邏輯與,|| 用於邏輯或,! 用於邏輯非。

3️⃣ 布林型別與條件語句

布林型別是條件語句(如 if 語句)中不可或缺的一部分。if 語句根據布林表達式的結果決定是否執行相應的程式碼區塊。

  • 範例:布林型別與 if 語句
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main

    import "fmt"

    func main() {
    var isAdult bool = true

    if isAdult {
    fmt.Println("您是成年人!")
    } else {
    fmt.Println("您不是成年人!")
    }
    }

    📝這個範例中,if 語句根據布林值 isAdult 來決定是否顯示相應的訊息。

4️⃣ 布林型別的默認值

Go 語言中的布林型別在變數未初始化時,其默認值為 false

  • 範例:布林型別的默認值
    1
    2
    3
    4
    5
    6
    7
    8
    package main

    import "fmt"

    func main() {
    var isAvailable bool
    fmt.Println("isAvailable:", isAvailable) // 輸出:isAvailable: false
    }

    📝在這個範例中,isAvailable 未被明確初始化,因此它的默認值為 false


⚠️ 注意事項

1️⃣ 不等於零的數值與布林型別

Go 語言中並不允許將數字直接與布林型別混用。不同於某些語言(如 C),Go 中的布林型別只接受 truefalse,不會將數值 0 視為 false,也不會將非零數字視為 true

  • 範例:數字與布林型別不兼容
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package main

    import "fmt"

    func main() {
    // 以下會報錯:布林型別不接受數字
    // var result bool = 1 // 編譯錯誤
    // var valid bool = 0 // 編譯錯誤
    }

    📝布林型別只能直接賦予 truefalse,數字不能自動轉換為布林值。

2️⃣ 布林型別與空值

在 Go 中,布林型別本身並不能直接與 nil 比較。若需要判斷是否為空,可以使用指標來實現。

  • 範例:使用指標來處理布林型別的空值
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package main

    import "fmt"

    func main() {
    var isActive *bool // 布林型別的指標,默認為 nil

    if isActive == nil {
    fmt.Println("isActive 變數是空的(nil)")
    }
    }

    📝這個範例中,isActive 是布林型別的指標,默認為 nil,可以通過檢查來判斷是否為空。


🎯總結

布林型別是非常基礎但至關重要的型別。它主要用來處理邏輯判斷和條件控制。理解布林型別的基本運算、使用場景以及注意事項,可以幫助編寫更加高效且清晰的程式碼。

建議在開發過程中,靈活運用布林型別來進行條件判斷和控制程式流程,並小心避免與其他數值型別混用的問題。

最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。


註:以上參考了
Go