Go语言 之切片截取

package main

import (
    "fmt"
)

//s[low:high:max]
//第一个数(low)表示下标的起点(从该位置开始截取),如果low取值为0表示从第一个元素开始截取,也就是对应的切片s中的10
//第二个数(high)表示取到哪结束,也就是下标的终点(不包含该位置),根据公式计算(len=high-low),也就是第二个数减去第一个数,差就是数据长度。在这里可以将长度理解成取出的数据的个数。
//第三个数用来计算容量,所谓容量:是指切片目前可容纳的最多元素个数。通过公式计算(cap=max-low),也就是第三个数据减去第一个数。

func main() {
    slice := []string{"a", "b", "c", "d", "e"}
    fmt.Println(slice[0:4:5]) //[a b c d]
}

 

操作

含义

s[n]

切片s中索引位置为n的项

s[:]

从切片s的索引位置0len(s)-1处所获得的切片

s[low:]

从切片s的索引位置lowlen(s)-1处所获得的切片

s[:high]

从切片s的索引位置0high处所获得的切片,len=high

s[low:high]

从切片s的索引位置lowhigh处所获得的切片,len=high-low

s[low : high : max]

从切片s的索引位置lowhigh处所获得的切片,len=high-lowcap=max-low

len(s)

切片s的长度,总是<=cap(s)

cap(s)

切片s的容量,总是>=len(s)

posted @ 2019-07-01 16:33  样子2018  阅读(7459)  评论(0编辑  收藏  举报