1. 程式人生 > >[GO]切片和底層數組的關系

[GO]切片和底層數組的關系

pre import imp print spa fun 對數 ack pack

package main

import "fmt"

func main()  {
    a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    s1 := a[2:5]
    s1[1] = 444
    fmt.Println("s1 = ", s1)

    s2 := s1[1:6]
    s2[1] = 555
    fmt.Println("s2 = ", s2)
    fmt.Println("a = ", a)
}

執行的結果為:

s1 =  [2 444 4]
s2 =  [444 555 5 6 7]
a =  [0 1 2
444 555 5 6 7 8 9]

通過結果就能看得出來,雖然s1對數組進行了截取,我們看到的結果也是截取的片段,但它只是顯示出了我們想看到的,其它在它之後還是存在著原始切片的值的

而且通過對新的切片做的修改,原始的切片的元素也發生了變更

通過試驗得到,不管a是數組還是切片,結果都是相同的

[GO]切片和底層數組的關系