有没有办法将两个变量分配给一个函数,当你声明一个变量而另一个没有声明时,它返回两个值。
例如:
var host string
if host, err := func(); err != nil {}
在上面的代码中,声明了主机但是错误不是。除了声明错误
之外,我想要一个干净的方法来做到这一点答案 0 :(得分:6)
在您的示例中,您根本不应该声明主持人。没有办法像这样进行部分分配...要么使用:=
作为声明和作业的简写,要么使用=
并且您只进行作业。我个人很少在Go中写下var
这个词。
要清楚的是,如果您有一个已经声明了一个或多个没有的变量,则允许您使用:=
分配给它,但反之则不然。这意味着如果尚未声明一个或多个左侧值,则无法使用=
。
答案 1 :(得分:1)
当您在:=
中使用if
时,您将始终获得在if
范围内声明的新变量。在if
之后,host
的值将与以前相同。如果您想这样做,则需要在host
之前声明err
和if
(并且不要在:=
中使用if
。