Go切片中兩個冒號的理解

2021-10-06 16:19:49 字數 888 閱讀 4426

先看下面的一段**:

package main

import

"fmt"

func

main()

myslice := numbers4[3:

6:8]

fmt.

printf

("myslice為 %d, 其容量為: %d\n"

, myslice,

cap(myslice)

) myslice2 = myslice[

:cap

(myslice)

] fmt.

printf

("myslice: %d"

, myslice2)

fmt.

printf

("myslice的第四個元素為: %d"

, myslice2[3]

)}

輸出如下:

myslice為 [4 5 6], 其容量為: 5

myslice: [4 5 6 7 8]myslice的第四個元素為: 7

從上面看myslice它的長度是3即(6 -3), 容量是5即(8-3),所以myslice的實際引用的陣列為[4,5,6,7,8],故myslice2是[4,5,6,7,8]。

若myslice中只有乙個冒號,即 myslice := numbers4[3:6] ,則myslice它的長度是3即(6 -3), 容量是7(10 -3),即實際引用的陣列為[4,5,6,7,8,9,10]。

所以,當slice中有兩個冒號時,即slice[start:index:max],它的容量就是(max - start),實際引用的陣列時從陣列start索引開始到max索引為止,但不包括max索引處的元素。

正確理解「切片」中的問題

日常python小筆記 比如有序列如下 numbers 1,2,3,4,5,6,7,8,9,10 切片訪問指定範圍內的元素 如 numbers 7 10 注意 1 在實際理解中,後面這個數字需減一才能得到正確結果 除過加上步長引數且引數為負數 2 前面數字所指定的元素必須在後面指定的前面 除過加上步...

乙個冒號和兩個冒號的區別

雙冒號是在css3規範中引入的,用於區分偽類和偽元素乙個冒號 偽類以下是w3c上列出的偽類 w3c w3c 列指示出該屬性在哪個 css 版本中定義 css1 還是 css2 屬性描述 css active 向被啟用的元素新增樣式。1 focus 向擁有鍵盤輸入焦點的元素新增樣式。2 hover 當...

C 中兩個冒號( )的作用

global system.console.writeline number 冒號在什麼地方用.點是空間下類,表示下一層的意思?這裡面 前面是gac的標示符global,用法比較特殊,和.不是乙個型別的東西。global 是 c 2.0 中新增的關鍵字,理論上說,如果 寫得好的話,根本不需要用到它。...