【发布时间】:2022-12-28 17:12:46
【问题描述】:
package main
import (
"fmt"
)
func main() {
arr0 := []int{
1,2,3,4,5,
}
arr1 := []int{}
fmt.Println(arr0)
fmt.Println(arr1)
fmt.Println("transferring...")
transfer(&arr0, &arr1)
fmt.Println(arr0)
fmt.Println(arr1)
}
func transfer(arr0 *[]int, arr1 *[]int) {
tmp := make([]int, 0)
for i:=0;i<len(*arr0);i++ {
tmp = append(tmp, (*arr0)[i])
}
arr1 = &tmp
s := make([]int, 0)
arr0 = &s
}
对于传输功能,我打算将切片 arr 0 的元素传输到切片 arr1 和空切片 arr 0
但它没有成功
这是我的输出
[1 2 3 4 5]
[]
transferring...
[1 2 3 4 5]
[]
转移后,我需要下面的结果。 [] [1 2 3 4 5] 但实际上,main函数中的arr0和arr1保持原样!
有人能告诉我为什么这不行吗?
我在记忆中想,应该是这样的
运行传递函数后
【问题讨论】: