Jac*_*ble 5 error-handling string-formatting go
这种字符串格式工作得很好:
err := foo()
if err != nil {
fmt.Printf("foo returned '%s' when called\n", err)
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下打电话有什么好处吗err.Error()?
fmt.Printf("foo returned '%s" when called\n", err.Error())
Run Code Online (Sandbox Code Playgroud)
两个版本都完全没问题。
fmt 包对错误界面有特殊支持(从此链接向下滚动几个屏幕):
- 如果操作数实现了错误接口,则将调用 Error 方法将对象转换为字符串,然后根据动词(如果有)要求对其进行格式化。
您的第二个版本可能会运行得更快,因为它可以避免 fmt 包所做的大多数特殊断言,但在大多数情况下差异应该不明显。
一般来说,您可能应该更喜欢第一个版本,它更具可读性,尤其是带有更多参数。
| 归档时间: |
|
| 查看次数: |
2055 次 |
| 最近记录: |