Go对数组使用切片的细节

Go对数组使用切片的细节

go对一个数组使用切片操作时,会自动生成一个指向该数组的切片

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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])
}
Comments are closed.