如何声明由函数调用实例化的多个变量在Go中返回多个值?

jam*_*her 0 syntax return-type go variable-declaration

假设我有一个功能:

func foo() (bool, string) { ... }
Run Code Online (Sandbox Code Playgroud)

然后我希望声明两个变量,bs使用函数调用返回的值进行初始化foo().我知道我可以使用省略类型注释的"速记"语法来做到这一点:

b, s := foo();
Run Code Online (Sandbox Code Playgroud)

但是,我不想使用这种速记语法.我希望使用var带有变量名和期望类型的语法.我试过这个:

var b bool, s string = foo();
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个语法错误.这样做的正确方法是什么?

Rob*_*ier 6

在大多数情况下,正确的方法是使用简写语法.这就是它的用途.

如果您不想使用速记语法,那么您可以使用var语法:

var b bool
var s string
b, s = foo()
Run Code Online (Sandbox Code Playgroud)

要么

var (
    b bool
    s string
)
b, s = foo()
Run Code Online (Sandbox Code Playgroud)

没有"速记var"语法.