为了账号安全,请及时绑定邮箱和手机立即绑定

单值上下文中的多个值

单值上下文中的多个值

Go
繁星淼淼 2021-09-13 14:47:12
由于 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.


查看完整回答
反对 回复 2021-09-13
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信