golang 函数多返回值下如何进行链式调用?

新手上路,请多包涵

golang函数可以有多个返回值,请问是否可以指定第几个返回值进行链式调用,比如下面的代码:

package main
import "fmt"

func test()(s string,err error){
    return "hello",nil
}
func main(){
    fmt.Println("HelloWorld ",test().s)
}

我希望test()函数后,忽略err直接使用第一个参数,怎么能不新定义变量进行调用呢?
无论test() 还是 test().s 都是一样的错误:

./tempCodeRunnerFile.go:8: multiple-value test() in single-value context

多返回值难道就不能用链式调用了么?

阅读 12.8k
6 个回答

应该是没有这种操作把

根据你这种场景。。。

可以把test()的返回值改成和fmt.Println的入参一样,因为,这个函数本来支持多参的。

至于多返回值,我也没有试过链式调用,

不要有这种使用场景吧 显然违反约定
也不符合代码规范

是的,多返回值不能用链式调用。

如果这个test函数返回错误的情况可以忽略不计,那你为啥还要返回错误呢?

多返回值下是不能实现链式调用的,谢谢!

说实话这需求有点强迫症啊,你实在有这需求不如把多返回值封装成个struct就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题