猿问

为什么 append() 修改提供的切片?(见示例)

您可以在 Go Playground 上运行示例代码。


这是代码:


package main


import "fmt"


func main() {

    numbers := []int{1, 2, 3, 4, 5}


    fmt.Println(numbers)

    _ = append(numbers[0:1], numbers[2:]...)

    fmt.Println(numbers)

}

输出:


[1 2 3 4 5]

[1 3 4 5 5]

为什么numbers切片被 append 修改了?这是预期的行为吗?如果是,您能向我解释原因吗?我认为append不会修改其论点。


繁星淼淼
浏览 192回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答