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的索引位置0到len(s)-1處所獲得的切片 |
s[low:] |
從切片s的索引位置low到len(s)-1處所獲得的切片 |
s[:high] |
從切片s的索引位置0到high處所獲得的切片,len=high |
s[low:high] |
從切片s的索引位置low到high處所獲得的切片,len=high-low |
s[low : high : max] |
從切片s的索引位置low到high處所獲得的切片,len=high-low,cap=max-low |
len(s) |
切片s的長度,總是<=cap(s) |
cap(s) |
切片s的容量,總是>=len(s) |