由于Go中的错误处理,我经常最终得到多个值函数.到目前为止,我管理它的方式非常混乱,我正在寻找编写更清晰代码的最佳实践.
假设我有以下功能:
type Item struct {
Value int
Name string
}
func Get(value int) (Item, error) {
// some code
return item, nil
}
Run Code Online (Sandbox Code Playgroud)
如何item.Value优雅地分配新变量.在介绍错误处理之前,我的函数刚刚返回item,我可以简单地执行此操作:
val := Get(1).Value
Run Code Online (Sandbox Code Playgroud)
现在我这样做:
item, _ := Get(1)
val := item.Value
Run Code Online (Sandbox Code Playgroud)
有没有办法直接访问第一个返回的变量?
package main
import "fmt"
func main() {
fmt.Println("Enter a number: ")
var addendOne int = fmt.Scan()
fmt.Println("Enter another number: ")
var addendTwo int = fmt.Scan()
sum := addendOne + addendTwo
fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
Run Code Online (Sandbox Code Playgroud)
这引发了一个错误:
单值上下文中的多个值。
为什么会发生,我们如何解决?