我不明白 Go 中的切片声明。因为,我声明数组的第一个和第二个元素必须是 0:1。但它是0:2。为什么?我应该如何阅读这个,从零到 2 减 1(一直)?var slice = array[0:2]
2 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
切片边界是半开的,这对于许多编程语言来说是非常标准的。一个优点是它使范围的长度变得明显 (2-0=2)。具体来说,这样做很常见:
s[start:start+len]
很明显,这会len
从切片中选择元素,从start
. 如果范围将完全关闭(包括两个边界),则代码中必须有很多-1
s 来处理切片和子切片。
它在 C++ 范围和 Python 等中的工作方式类似。
您希望范围的大小是一个简单的差异 end - begin;
当序列退化为空序列时,包括下限更“自然”,而且因为替代方案(不包括下限)需要存在“开始前的一个”标记值。
- 2 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消