单值上下文中的多个值

由于 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

没有办法直接访问第一个返回的变量吗?


繁星淼淼
浏览 231回答 3
3回答

互换的青春

不,但这是一件好事,因为您应该始终处理您的错误。您可以使用一些技术来延迟错误处理,请参阅Rob Pike 的错误是值。ew := &errWriter{w: fd}ew.write(p0[a:b])ew.write(p1[c:d])ew.write(p2[e:f])// and so onif ew.err != nil {    return ew.err}在博客文章中的这个示例中,他说明了如何创建一个errWriter类型,将错误处理推迟到调用write.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go