加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang – 像[0:2]这样的切片声明

发布时间:2020-12-16 09:27:37 所属栏目:大数据 来源:网络整理
导读:我不理解Go中的切片声明. 对于我来说,数组的第一个和第二个元素的声明必须是0:1. 但它是0:2.为什么?我怎么读这个,从零到2减去1(所有时间)? var slice = array[0:2] 对不起我的愚蠢问题,但这对我没有意义. 解决方法 切片边界是 half open,这是许多编程语
我不理解Go中的切片声明.

对于我来说,数组的第一个和第二个元素的声明必须是0:1.
但它是0:2.为什么?我怎么读这个,从零到2减去1(所有时间)?

var slice = array[0:2]

对不起我的愚蠢问题,但这对我没有意义.

解决方法

切片边界是 half open,这是许多编程语言的标准.一个优点是它使得范围的长度明显(2-0 = 2).具体来说,通常这样做:

s[start:start+len]

很明显,这从切片中选择len元素,从start开始.如果范围将完全关闭(包括两个边界),则代码中必须有大量-1来处理切片和子切片.

它的工作方式类似于C范围和Python等.以下是C++ answer的一些推理,归功于Dijkstra:

>你希望范围的大小是一个简单的差异结束 – 开始;>当序列退化为空的时,包括下限更“自然”,并且因为替代(不包括下限)将需要存在“一开始前”的前哨值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读