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

将多值返回附加到 func 参数

将多值返回附加到 func 参数

Go
繁星淼淼 2022-05-18 10:36:45
是否可以压缩此操作?a, b := obtain2Values()c = ":)"process3Values(a, b, c)变成这样的东西?(我知道这并不完全有效,但我正在寻找替代方案,如果存在的话)process3Values(obtain2Values(), ":)")
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

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



查看完整回答
反对 回复 2022-05-18
?
翻阅古今

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


查看完整回答
反对 回复 2022-05-18
  • 2 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

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