一尘不染

golang数组引用例如 b [1:4]引用元素1,2,3

go

golang博客指出:

“也可以通过“切片”现有切片或数组来形成切片。切片是通过指定半开范围来完成的,其中两个索引之间用冒号分隔。例如,表达式b [1:4]创建包含以下内容的切片:
b的元素1到3(所得切片的索引将是0到2)。”

有人可以向我解释上面的逻辑。IE浏览器 b [1:4]为什么不引用元素1到4?这是否与其他数组引用一致?


阅读 481

收藏
2020-07-02

共1个答案

一尘不染

原因在“ 切片”的“ Go语言规范”部分中给出。

对于字符串,数组或切片a,主表达式

    a[low : high]

构造一个子字符串或切片。索引表达式low和high选择哪些元素出现在结果中。结果的索引从0开始,长度等于高-低。

为了方便起见,可以省略任何索引表达式。缺少的低索引默认为零;缺少的高索引默认为切片操作数的长度。

计算切片的长度为高-低很容易且有效。

2020-07-02