亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

slice5的容量為什么是4而不是8?

如題,對容量的計算還是搞得暈暈的。slice5的數值是5,6,不是應該是底層數組第一個元素的索引值和長度的差的絕對值?好像是5吧?

然后通過擴展變成8?為什么看別人的答案做出來是4?暈了


正在回答

1 回答

slice5 := numbers4[4:6:8]

首先len表示切片內包含的元素個數,顯然這里就是6-4=2

然后cap表示從切片第一個數開始,到底層數組的元素末尾(包含)的元素個數,這里底層數組是:

var numbers4 = [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},長度為10

slice5的第一個數的索引為4

也就是說,cap的值為10-4=6

但是由于slice5加上了容量上界索引8,所以其實cap應該是8-4=4

等于說是,加上容量上界索引后,底層數組其實是var numbers4 = [...]int{1, 2, 3, 4, 5, 6, 7, 8}

總結:切片長度=結束索引-起始索引,切片容量=底層數組長度-起始索引

如有錯誤,請指正。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

slice5的容量為什么是4而不是8?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號