2 回答

TA贡献1797条经验 获得超6个赞
简而言之,恐怕不是。一般来说,Go 不太擅长“压缩”表达式,因为它返回多个返回值(想想错误)的方式,不能作为一个组传递。这使得很难按照 C# 中的 Linq 或 JavaScript 中的 Lodash 实现链式函数表达式。您总是被迫分别处理不同的返回值。它使 Go 编写起来相当费力,但也非常明确,这就是意图 - 避免错误。

TA贡献1780条经验 获得超5个赞
这有效:
package main
import "fmt"
func obtain2Values() (int, int) {
return 1, 2
}
func process3Values(a, b int, c string){
fmt.Printf("%v %v %v\n", a, b, c)
}
func main() {
a, b := obtain2Values()
process3Values(a, b,":)")
// process3Values(obtain2Values(), ":)")
}
process3Values(obtain2Values(), ":)") 不起作用:
./prog.go:16:16: not enough arguments in call to process3Values
./prog.go:16:30: multiple-value obtain2Values() in single-value context
- 2 回答
- 0 关注
- 116 浏览
添加回答
举报