Golang变量赋值

时间:2016-08-18 22:49:41

标签: go

有没有办法将两个变量分配给一个函数,当你声明一个变量而另一个没有声明时,它返回两个值。

例如:

var host string
if host, err := func(); err != nil {}

在上面的代码中,声明了主机但是错误不是。除了声明错误

之外,我想要一个干净的方法来做到这一点

2 个答案:

答案 0 :(得分:6)

在您的示例中,您根本不应该声明主持人。没有办法像这样进行部分分配...要么使用:=作为声明和作业的简写,要么使用=并且您只进行作业。我个人很少在Go中写下var这个词。

要清楚的是,如果您有一个已经声明了一个或多个没有的变量,则允许您使用:=分配给它,但反之则不然。这意味着如果尚未声明一个或多个左侧值,则无法使用=

答案 1 :(得分:1)

当您在:=中使用if时,您将始终获得在if范围内声明的新变量。在if之后,host的值将与以前相同。如果您想这样做,则需要在host之前声明errif(并且不要在:=中使用if