golang 切片简单运用

package main

import "fmt"

func main() {
    arr := [...] int{0,1,2,3,4,5,6,7,8,9}

    fmt.Println(arr[2:6])  //2 , 3, 4, 5
    fmt.Println(arr[:6]) // 0, 1,2,3,4,5

    s1 := arr[2:]
    fmt.Println(s1) //2,3,4,5,6,7,8,9

    s2 := arr[:]
    fmt.Println(s2) // 0,1,2,3,4,5,6,7,8,9
}

公式总结:

切割长度 = 结束索引 - 开始索引

以上就是简单 golang 切片运用了. 和python 差不多 , 只不过 Python 都是按照下标切割的.

package main

import "fmt"

func updateSlice(arr []int)  {
    arr[0] = 100
}

func main() {
    // Slice 学习.

    arr := [...]int{0,1,2,3,4,5,6,7,8,9}

    fmt.Println(arr[2:6])  //2 , 3, 4, 5
    fmt.Println(arr[:6]) // 0, 1,2,3,4,5

    s1 := arr[2:]
    fmt.Println(s1) //2,3,4,5,6,7,8,9

    s2 := arr[:]
    fmt.Println(s2) // 0,1,2,3,4,5,6,7,8,9

    updateSlice(s1)
    fmt.Println(s1)  // 100,3,4,5,6,7,8,9
    fmt.Println(arr)

    updateSlice(s2)

    fmt.Println(s2) // 100,1,100,3,4,5,6,7,8,9
    fmt.Println(arr) // 100,1,100,3,4,5,6,7,8,9

    arr1 := []int{0,1,2,3,4,5,6,7}

    s := arr1[2:6]
    s[0] = 10
    fmt.Println(arr1) // 0,1,10,2,3,4,5,6,7

    /*
        Slice 本身没有数据,是对底层array的一个view
        arr 的值变为[0,1,10,2,3,4,5,6,7]
     */
}

总结:

Slice 本身没有数据,是对底层array的一个view

本作品采用《CC 协议》,转载必须注明作者和本文链接
by JeffreyBool blog :point_right: link
JeffreyBool
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!