Like Share Discussion Bookmark Smile

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

Go | 基本型別的認識與宣告

💬 簡介

在程式開發中,變數是用來存儲資料的重要工具。在 Go 語言中,變數的宣告方式簡單且靈活,支援多種基本資料型別以適應不同的應用場景。

本篇文章將了解 Go 的變數宣告方式,以及支援的基本資料型別。

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


📝 變數宣告方式

Go 提供了多種宣告變數的方式,根據不同需求選擇適合的方式進行使用。

1️⃣ 標準宣告方式

標準的變數宣告方式使用 var 關鍵字,並指定變數的名稱與型別

1
var variableName variableType
  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    package main

    import "fmt"

    func main() {
    var name string = "Golang"
    fmt.Println("Hello,", name)
    }
  • 結果輸出:
    1
    Hello, Golang

2️⃣ 隱式型別推斷

提供了型別推斷功能,在變數賦值時自動推斷變數的型別:

1
var variableName = value
  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    package main

    import "fmt"

    func main() {
    var age = 30
    fmt.Println("Age:", age)
    }
  • 結果輸出:
    1
    Age: 30

3️⃣ 簡短宣告方式

在函式內可以使用 := 來進行簡短宣告,這是 Go 特有的語法,簡潔且高效:

1
variableName := value
  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    package main

    import "fmt"

    func main() {
    greeting := "Hello, Go!"
    fmt.Println(greeting)
    }
  • 結果輸出:
    1
    Hello, Go!

🚀 多變數宣告

Go 支援一次宣告多個變數,提升程式的可讀性與維護性。

1️⃣ 同型別變數

1
var x, y, z int = 1, 2, 3

2️⃣ 不同型別變數

1
2
3
4
5
var (
name string = "Go"
age int = 30
lang string = "Golang"
)
  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package main

    import "fmt"

    func main() {
    var (
    name string = "Go"
    age int = 10
    )
    fmt.Printf("Name: %s, Age: %d\n", name, age)
    }
  • 結果輸出:
    1
    Name: Go, Age: 10

🔎 Go 的基本資料型別

Go 提供多種基本資料型別,以下是完整的型別分類與簡要說明:

📌 數值型

  • 整數型
    • 帶符號整數(signed):int, int8, int16, int32, int64
    • 無符號整數(unsigned):uint, uint8, uint16, uint32, uint64, uintptr
      • uintptr:用於存儲指標的整數型別,與平台相關。
  • 浮點數型
    • float32, float64:分別表示單精度與雙精度浮點數。
  • 複數型
    • complex64, complex128:分別表示包含 32 位或 64 位浮點數的實部與虛部的複數。

📌 布林型

  • 布林型
    • bool:用於表示布林值,僅能取 truefalse

📌 文字型

  • 位元型
    • byteuint8 的別名,通常用於表示單一位元的資料。
  • 符文型
    • runeint32 的別名,表示一個 Unicode 碼點。

📌 字串型

  • 字串型
    • string:表示文字資料,支援 UTF-8 編碼。

📌 附加說明

  • int, uint, uintptr 的位數
    這些型別的位數依系統而定,在 32 位系統上為 32 位寬,在 64 位系統上為 64 位寬。

  • 使用建議
    除非有特殊需求,通常建議使用 int 作為整數型別,因為它在大多數情況下是最佳選擇。

🔧 範例

以下範例展示了多種基本資料型別的變數宣告:

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package main

    import "fmt"

    func main() {
    var isActive bool = true
    var age int = 30
    var unicodeChar rune = '😊'
    var byteValue byte = 255
    var floatValue float64 = 3.14159
    var complexValue complex128 = complex(1, 2)

    fmt.Println("布林值:", isActive)
    fmt.Println("整數值:", age)
    fmt.Println("Unicode 碼點:", unicodeChar)
    fmt.Println("位元值:", byteValue)
    fmt.Println("浮點值:", floatValue)
    fmt.Println("複數值:", complexValue)
    }
  • 結果輸出:
    1
    2
    3
    4
    5
    6
    布林值: true
    整數值: 30
    Unicode 碼點: 128522
    位元值: 255
    浮點值: 3.14159
    複數值: (1+2i)

🎯總結

本篇文章介紹了 Go 語言中的變數宣告方式與基本資料型別。透過簡單直觀的範例,學習如何使用 var 宣告變數,並了解 Go 支援的多種基本資料型別及其用途。

未來的程式開發中,選擇正確的資料型別不僅能提高程式的可讀性與效能,也能幫助更好地管理與處理資料。若對特定型別有更多疑問,建議參考官方文件或進一步測試相關功能!

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


註:以上參考了
Go
Effective Go
A Tour of Go - Basic types