candy - 類型轉換
概述
candy 模組提供高效能類型轉換工具,具有零分配優化。它支援各種 Go 類型之間的轉換,包括字串、數字、布林值、切片和映射。
整數轉換函數
ToInt()
將任何類型轉換為 int。
支援的類型:
- bool: true → 1, false → 0
- 所有整數類型(int、int8、int16、int32、int64)
- 所無符號整數類型(uint、uint8、uint16、uint32、uint64)
- 浮點類型(float32、float64)
- string、[]byte: 解析為整數
- 其他類型: 返回 0
示例:
ToInt8(), ToInt16(), ToInt32(), ToInt64()
轉換為特定的整數類型。
示例:
ToUint(), ToUint8(), ToUint16(), ToUint32(), ToUint64()
轉換為無符號整數類型。
示例:
浮點轉換函數
ToFloat(), ToFloat32(), ToFloat64()
轉換為浮點類型。
支援的類型:
- bool: true → 1.0, false → 0.0
- 所有整數類型
- 浮點類型
- string、[]byte: 解析為浮點數
- 其他類型: 返回 0.0
示例:
布林轉換
ToBool()
將任何類型轉換為布林值。
支援的類型:
- bool: 原樣返回
- 數字: 非零 → true, 零 → false
- string、[]byte: "1"、"true"、"yes"、"on" → true
- 其他類型: 返回 false
示例:
字串轉換
ToString()
將任何類型轉換為字串。
支援的類型:
- bool: true → "1", false → "0"
- 所有整數類型: 轉換為十進制字串
- 浮點類型: 使用適當的精度轉換
- time.Duration: 格式化為持續時間字串
- string: 原樣返回
- []byte: 轉換為字串
- nil: 返回 ""
- error: 返回錯誤訊息
- 其他類型: JSON 序列化
示例:
切片轉換
ToSlice()
將任何類型轉換為切片。
支援的類型:
- 任何類型的陣列和切片
- 映射: 轉換為值的切片
- 其他類型: 包裝在單元素切片中
示例:
ToIntSlice(), ToStringSlice(), 等
轉換為類型化切片。
示例:
映射轉換
ToMap()
將任何類型轉換為映射。
支援的類型:
- map[string]interface{}: 原樣返回
- map[interface{}]interface{}: 鍵轉換為字串
- 結構體: 欄位轉換為映射條目
- 其他類型: 返回空映射
示例:
指針轉換
ToPtr()
將任何類型轉換為指針。
示例:
使用模式
HTTP 請求解析
配置解析
資料處理
資料庫操作
效能特徵
零分配轉換
candy 模組針對效能進行了優化,盡可能實現零分配轉換: