小编fkp*_*olf的帖子

golang - 如何收到错误“已评估但未使用”

对于代码append(slice1, 1),Go 编译会给出错误“append(...)valuedbutnotused”。我们必须使用like,slice1 = append(slice1,1)因为append不修改slice1并且它将返回一个新的切片。

我认为这是一个很好的提示,因为这将防止很多错误,因为我们经常不知道函数append会改变原始数组或不会。在 JavaScript 中array1.push('item'),将就地更改 array1 并返回数组的新长度。

我想利用这种代码检查:

func appendStr(str string, tail string) string {
    b := str + tail
    return b
}
a := "a"
appendStr(a, "b")
Run Code Online (Sandbox Code Playgroud)

但是Go编译器没有报错。append那么编译器会对方法进行一些特殊检查吗?由于 Go 按值传递参数,编译器应该知道appendStr修改传入参数没有任何变化。

go

4
推荐指数
1
解决办法
3992
查看次数

标签 统计

go ×1