must.go - 錯誤斷言
概述
must.go 提供錯誤斷言工具,透過基於 panic 的錯誤檢查簡化錯誤處理流程。這些函數專為初始化和關鍵操作設計,當失敗時應終止程式執行。
函數
MustOk()
斷言第二個返回值為 true。
參數:
value- 返回值ok- 成功標誌
返回值:
- 如果
ok為 true,返回value - 如果
ok為 false,panic 並顯示訊息 "is not ok"
示例:
注意:
- 當第二個返回值表示成功/失敗時使用此函數
- 如果斷言失敗,panic 會終止程式執行
- 泛型類型
T允許任何返回類型 - 常用於 map 查找和類型斷言
MustSuccess()
斷言錯誤為 nil。
參數:
err- 要檢查的錯誤
行為:
- 如果
err為 nil,不執行任何操作 - 如果
err不為 nil,panic 並顯示格式化的錯誤訊息
示例:
注意:
- 常用於初始化和設置操作
- Panic 訊息包含錯誤詳情以便除錯
- 用於程式必須成功才能繼續的操作
Must()
組合驗證函數,檢查錯誤狀態並返回值。
參數:
value- 返回值err- 錯誤
返回值:
- 如果
err為 nil,返回value - 如果
err不為 nil,panic
示例:
注意:
- must 模組中最常用的函數
- 組合錯誤檢查和值提取
- 泛型類型
T允許任何返回類型 - 適用於返回
(T, error)的函數
Ignore()
強制忽略任何參數。
參數:
value- 要返回的值_- 被忽略的參數
返回值:
- 返回
value
示例:
注意:
- 當需要抑制 linter 關於忽略值的警告時使用
- 第二個參數被顯式忽略
- 有助於保持程式碼整潔而不出現 linter 警告
- 不實際處理錯誤,只是抑制警告
使用模式
初始化鏈
檔案操作
Map 操作
配置載入
最佳實踐
何時使用 Must 函數
使用 Must() 當:
- 操作對程式啟動至關重要
- 失敗應終止程式執行
- 錯誤恢復不可能或沒有意義
- 你在初始化程式碼中(main、init)
避免 Must() 當:
- 處理使用者輸入
- 可能失敗的網路請求
- 可能不存在的檔案操作
- 任何可能合理失敗的操作