Go 戈朗:有没有办法在一行中修改一个多值返回参数?

Go 戈朗:有没有办法在一行中修改一个多值返回参数?,go,Go,我正在Go中尝试一些相对简单的方法-将字符串转换为整数,然后将其加倍: myInt, _ := strconv.Atoi(args[1]) doubleArg := myInt * 2 由于Atoi()返回两个参数(整数和err),因此我使用myInt,:=来检索整数的值。我想增加一倍(因此是第二行),但不能在一行中完成所有工作: myInt, _ := strconv.Atoi(args[1]) * 2 给我: multiple-value strconv.Atoi() in single

我正在Go中尝试一些相对简单的方法-将字符串转换为整数,然后将其加倍:

myInt, _ := strconv.Atoi(args[1])
doubleArg := myInt * 2
由于
Atoi()
返回两个参数(整数和
err
),因此我使用
myInt,:=
来检索整数的值。我想增加一倍(因此是第二行),但不能在一行中完成所有工作:

myInt, _ := strconv.Atoi(args[1]) * 2
给我:

multiple-value strconv.Atoi() in single-value context

然而,从我对大多数其他语言的经验来看,似乎有很多样板需要用两行代码来完成。这只是我必须处理的一个限制,还是有更好的方法来编写我的代码?

两行代码实际上并不多。但是,如果必须在代码中多次执行相同的操作,那么最好编写自己版本的转换函数,然后编写乘法函数。这个函数可以执行错误检查和实际工作。

我不确定如何添加一行“大量样板”。问题中还存在一个固有的问题:您忽略了错误并试图将
Atoi
的结果相乘,如果调用失败,这可能不是您期望的值。Go没有这样做的能力。如果它返回两个参数,并且您想修改其中一个,那么需要将它们分配给vars,然后在第二行进行修改。另一方面,您真的不应该忽略来自
Atoi
的错误变量返回。不要与Go抗争,如果您要使用它,请接受它。