Go对数组使用切片的细节
go对一个数组使用切片操作时,会自动生成一个指向该数组的切片
package main
import "fmt"
func setArray(s []int) {
s[0] = 1
s[1] = 2
}
// 函数内修改切片会导致数组变化,因为该切片指向的是数组地址
func main() {
arr := [5]int{}
setArray(arr[:])
fmt.Println(arr[1])
}
package main
import "fmt"
func setArray(s []int) {
s[0] = 1
s[1] = 2
}
// 函数内修改切片会导致数组变化,因为该切片指向的是数组地址
func main() {
arr := [5]int{}
setArray(arr[:])
fmt.Println(arr[1])
}
package main import "fmt" func setArray(s []int) { s[0] = 1 s[1] = 2 } // 函数内修改切片会导致数组变化,因为该切片指向的是数组地址 func main() { arr := [5]int{} setArray(arr[:]) fmt.Println(arr[1]) }