Skip to content

工具 (Utils)

utils 套件提供了一系列常用操作的工具函數,涵蓋日誌記錄、重試機制、超時控制、對象美化及數值處理等。

模組

日誌記錄

自動識別開發或生產環境並採取不同的記錄方式。

重試

為不穩定的操作提供重試機制。

超時控制

為操作添加超時限制。

對象美化

基於 go-spew 實現的高級美化工具。

彩色終端

使用 ANSI 轉義序列輸出彩色文字。

數值工具

模擬動態類型語言中的數字處理。

通用輔助

常見的輔助函數。

Channel 操作

非阻塞和帶超時的 Channel 操作。

完整範例

go
package main

import (
    "fmt"
    "github.com/leoheung/go-patterns/utils"
)

func main() {
    // 1. 格式化輸出
    user := struct {
        Name string
        Age  int
    }{"Leon", 25}

    fmt.Println("用戶資料:")
    utils.PPrint(user)

    // 2. 重試邏輯
    count := 0
    utils.RetryWork(func() (any, error) {
        count++
        if count < 2 {
            return nil, fmt.Errorf("暫時性錯誤")
        }
        return "成功", nil
    }, 3)
}

特性

  • 健壯性: 重試與超時函數內部均包含 recover(),可防止業務邏輯 Panic 導致程序崩潰。
  • 易用性: 簡化了 Go 語言中繁瑣的類型指針轉換與反射檢查。
  • 除錯友好: 提供多種層次的对象序列化與打印工具。

Released under the MIT License.