以下代码:
package main
func main() {
var foo []string
append(foo, "lorem")
}
...导致此编译错误:
append(foo, "lorem") (value of type []string) is not used
我似乎可以通过捕获
append()
的返回值来解决这个问题;以下代码编译正常:
package main
func main() {
var foo []string
_ = append(foo, "lorem")
}
编译错误的本质是什么?我不明白它想指出什么。
编译器强制执行代码正确性吗?它是想告诉我“你必须从返回某些内容的函数中捕获返回值”吗?
package main
func main() {
var foo []string
append(foo, "lorem")
}
https://go.dev/play/p/L2dvRxELd_D
5:2: append(foo, "lorem") (value of type []string) is not used
换句话说,你所做的事情完全没有意义,因为你放弃了结果。
可变参数函数append将零个或多个值x附加到切片s并返回与s类型相同的结果切片。