由于 Go 中的错误处理,我经常以多值函数结束。到目前为止,我的管理方式非常混乱,我正在寻找编写更清晰代码的最佳实践。假设我有以下功能:type Item struct { Value int Name string}func Get(value int) (Item, error) { // some code return item, nil}如何item.Value优雅地分配一个新变量。在介绍错误处理之前,我的函数刚刚返回item,我可以简单地这样做:val := Get(1).Value现在我这样做:item, _ := Get(1)val := item.Value没有办法直接访问第一个返回的变量吗?
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
不,但这是一件好事,因为您应该始终处理您的错误。
您可以使用一些技术来延迟错误处理,请参阅Rob Pike 的错误是值。
ew := &errWriter{w: fd}
ew.write(p0[a:b])
ew.write(p1[c:d])
ew.write(p2[e:f])
// and so on
if ew.err != nil {
return ew.err
}
在博客文章中的这个示例中,他说明了如何创建一个errWriter类型,将错误处理推迟到调用write.
- 3 回答
- 0 关注
- 196 浏览
添加回答
举报
0/150
提交
取消