go切片截取

142 阅读1分钟

go切片截取

package main

import (
    "fmt"
)
**
// s[low:high:max]  (high位置不包含)
// 参数解释
// low: 表示截取下标的起点(从该位置开始截取) 若等于0 则等价于(s[:high])为空
// high: 表示截取下标的终点**(不包含该位置)**,len=high-low,切片长度等于第二个数减去第一个数。在这里可以将长度理解成所截取出的数据的个数。
// max:(cap=max-low)用来计算容量,所谓容量:是指切片目前可容纳的最多元素个数。也就是第三个数据(max)减去第一个数(low)。

func main() {
    slice := []string{"a", "b", "c", "d", "e"}
    
    fmt.Println(slice[0:3:5]) //[a b c]
    // 截取所获得容量为 cap = (5- 0) = 5
}

s[n] : 获取切片下标为n的项

s[:] : 索引位置 0 到 len(s)-1所获得的切片

s[low:] : 索引位置 low 到 len(s)-1所获得的切片

s[:high] : 索引位置 0 到 high所获得的切片 len = high

s[low:high] : 索引位置 low 到 high 所获得的切片 len = (high - low)

s[low : high : max] : 索引位置 low 到 high 所获得的切片 len = (high - low), cap = max-low

len(s) : 切片长度

cap(s) :切片容量