数组-golang append()已评估但未使用
func main(){
var array [10]int
sliceA := array[0:5]
append(sliceA, 4)
fmt.Println(sliceA)
}
错误:已评估但未使用append(sliceA,4)
不知道为什么 切片附加操作未运行...
L.jerson asked 2020-07-19T11:14:06Z
4个解决方案
61 votes
参考:附加和复制切片
在Go中,参数按值传递。
append
的典型用法是:
a = append(a, x)
您需要写:
func main(){
var array [10]int
sliceA := array[0:5]
// append(sliceA, 4) // discard
sliceA = append(sliceA, 4) // keep
fmt.Println(sliceA)
}
输出:
[0 0 0 0 0 4]
希望对您有所帮助。
4 votes
sliceA = append(sliceA,4)append返回包含一个或多个新值的切片。 请注意,我们需要接受append的返回值,因为我们可能会获得新的slice值。
3 votes
您可以尝试以下方法:
sliceA = append(sliceA, 4)
内置函数append([]type, ...type)
返回类型的数组/切片,应将其分配给所需的值,而输入数组/切片只是一个源。 只是outputSlice = append(sourceSlice, appendedValue)
1 votes
根据Go文档:
附加值的结果是一个切片,其中包含原始切片的所有元素以及提供的值。
因此,“ append”的返回值将包含原始切片以及附加的部分。