使用fmt.Errorf 格式化錯誤訊息
初始問題:
初始問題:
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }</code>
您遇到了一個問題,即「a」成為 NewError() 中的單一陣列參數。這導致 fmt.Sprintf 無法僅將一個參數替換為格式字串。
解:您遇到的障礙源自於缺少 ...(省略號)位於函數宣告中的「a」參數之後。根據 Go 規範,這種遺漏會阻礙您的程式碼正確處理可變數量的參數。
fmt.Errorf 來救援<code class="go">func Errorf(format string, a ...interface{}) error { return errors.New(Sprintf(format, a...)) }</code>
以上是如何使用 fmt.Errorf 建立類似 fmt.Sprintf 的自訂錯誤函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!