package main
import "fmt"
func main() {
paths := []string{"hello", "world", "mars"}
var result = delete(paths, 1)
fmt.Println(result)
fmt.Println(paths)
}
func delete(paths []string, index int) []string {
paths = append(paths[:index], paths[index+1:]...)
return paths
}
上述代码的结果如下:
[你好火星]
[你好,火星火星]
如你所见,第二个
fmt.Println(paths)
显然,使用修改后的切片,但不使用重新分配的值。为什么?我本来以为它会印出来的
[hello mars]
就像以前的印刷品一样。
我知道
paths
传递的切片与
路径
中的参数
delete()
函数应引用相同的基础数组。但我仍然不明白我是如何更改
路径
被传授给
delete
打印时的功能
[hello mars mars]
而不是
[hello world mars]
.