Like Share Discussion Bookmark Smile

J.J. Huang   2025-01-07   Getting Started Golang 00.簡單介紹   瀏覽次數:次   DMCA.com Protection Status

Go | 強大豐富的標準函式庫

💬簡介

當在學習 Go 語言時,標準函式庫是一個非常重要的資源,它為開發者提供了豐富的功能,從基本的 I/O 操作到高級的加密、並發處理、網路通信等。了解如何查找和使用這些標準函式庫,能幫助在開發中事半功倍。

在這篇文章中,我將介紹如何簡單探索 Go 標準函式庫的強大功能,並介紹如何查閱文件、安裝和使用這些函式庫,最後會挑選幾個常用的標準函式庫作為範例。

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


🔎如何查閱標準函式庫文件

💼官方文件網站

標準函式庫的文件可以在官方網站上找到,這裡有詳細的介紹和範例程式碼,幫助開發者了解每個包的功能和使用方式:

在這個網站上,可以搜索任何包的名稱來查看其文件,了解包中的函式、結構體、方法等的具體使用方法。

📖查閱範例

例如,搜尋 fmt 包的文件時,會看到如下內容:

📋使用 go doc 命令查詢

如果希望直接在命令行中查詢文件,可以使用 go doc 命令。這樣的方式非常方便,特別是在編寫程式的時候,能夠快速查看相關函式的詳細說明。

1
2
go doc <package_name>              # 查詢某個包的文件
go doc <package_name>.<func_name> # 查詢某個包中的具體函式

例如,若要查看 fmt.Println 函式的文件,只需要執行:

1
go doc fmt.Println

這會顯示 fmt.Println 函式的文件,包含它的用途、參數和返回值等信息。

📚官方教學與文件

此外,官方網站還提供了多種學習資源,適合不同層次的開發者:

這些資源涵蓋了從基礎知識到高級功能的各種內容,是學習標準函式庫的重要途徑。


🔌如何使用標準函式庫

了解如何查閱文件後,接下來就是如何在程式中使用這些函式庫了。使用標準函式庫其實非常簡單,下面是基本步驟:

  • 1️⃣ 導入包
    使用 import 關鍵字來引入需要的包。例如,要使用 fmt 包來進行輸出:

    1
    import "fmt"
  • 2️⃣ 調用包中的函式
    引入包之後就可以使用該包中提供的函式。例如,調用 fmt.Println 來輸出文本:

    1
    fmt.Println("Hello, World!")
  • 3️⃣ 處理錯誤
    許多標準函式庫函式會返回錯誤(error)型別的值,記得檢查錯誤並妥善處理:

    1
    2
    3
    4
    5
    6
    file, err := os.Open("file.txt")
    if err != nil {
    fmt.Println("Error opening file:", err)
    return
    }
    defer file.Close()

範例:使用 fmt 包來格式化輸出

1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main() {
name := "Go"
version := 1.20

// 格式化輸出
fmt.Printf("Welcome to %s version %.1f!\n", name, version)
}

這段程式碼會印出:

1
Welcome to Go version 1.2!

🔱常用標準函式庫範例

【範例】<點擊>

範例 1:字串處理:strings

strings 包提供了很多常見的字串處理功能,例如檢查字串是否包含某個子字串、轉換字母大小寫等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import (
"fmt"
"strings"
)

func main() {
sentence := "Hello, Go World!"

// 檢查字串是否包含某個子字串
if strings.Contains(sentence, "Go") {
fmt.Println("包含 'Go'")
}

// 將字串轉換為小寫
lower := strings.ToLower(sentence)
fmt.Println("小寫字串:", lower)

// 分割字串
words := strings.Split(sentence, " ")
fmt.Println("分割後的字串:", words)
}

🖨️輸出:

1
2
3
包含 'Go'
小寫字串: hello, go world!
分割後的字串: [Hello, Go World!]

範例 2:數學運算:math

math 包包含了各種數學函式,例如計算平方根、對數、三角函式等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
"math"
)

func main() {
// 計算平方根
num := 16.0
sqrt := math.Sqrt(num)
fmt.Println("平方根:", sqrt)

// 計算圓周率
fmt.Println("圓周率:", math.Pi)

// 計算正弦值
angle := 30.0
radians := angle * math.Pi / 180 // 角度轉弧度
sine := math.Sin(radians)
fmt.Println("正弦值:", sine)
}

🖨️輸出:

1
2
3
平方根: 4
圓周率: 3.141592653589793
正弦值: 0.49999999999999994

範例 3:日期與時間:time

time 包提供了處理日期和時間的函式,從格式化日期到時間區間計算,無所不能。

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

import (
"fmt"
"time"
)

func main() {
// 取得當前時間
now := time.Now()
fmt.Println("當前時間:", now)

// 格式化時間
formatted := now.Format("2006-01-02 15:04:05")
fmt.Println("格式化時間:", formatted)

// 計算時間間隔
later := now.Add(48 * time.Hour)
fmt.Println("48小時後:", later)
}

🖨️輸出(示範為當前時間):

1
2
3
當前時間: 2025-01-07 09:30:00.1824827 +0800 CST m=+0.000506901
格式化時間: 2025-01-07 09:30:00
48小時後: 2025-01-09 09:30:00.1824827 +0800 CST m=+172800.000506901

範例 4:網路請求:net/http

net/http 包使得發送 HTTP 請求和處理回應變得非常簡單,適用於構建 Web 伺服器或用戶端。

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

import (
"fmt"
"net/http"
)

func main() {
// 發送 GET 請求
resp, err := http.Get("https://golang.org")
if err != nil {
fmt.Println("錯誤:", err)
return
}
defer resp.Body.Close()

// 輸出狀態碼
fmt.Println("HTTP 狀態碼:", resp.StatusCode)
}

🖨️輸出:

1
HTTP 狀態碼: 200

🎯總結

標準函式庫不僅強大而且設計簡潔,讓開發者能夠輕鬆處理各種開發需求,從檔案處理、網路通信到並發處理等都可以高效實現。掌握如何查閱標準函式庫的文件,學會如何快速使用這些庫,將大大提高開發效率。

如果是初學者,建議從最基本的函式庫入手,逐步深入學習其進階功能和高級特性。隨著經驗的積累,會越來越熟悉這些工具和技術,並能夠輕鬆應對各種複雜的開發任務。

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


註:以上參考了
Go
Go Standard library