登录
首页 >  Golang >  Go问答

声明切片

来源:stackoverflow

时间:2024-03-10 17:03:26 464浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《声明切片》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我不明白 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 等中的工作方式类似。以下是来自 dijkstra 的 C++ answer 的一些推理:

  • 您希望范围的大小是一个简单的差异 end - begin;

  • 当序列退化为空序列时,包含下界更加“自然”,而且还因为替代方案(不包括下界)需要存在“开始之前的”哨兵值.

这是来自 golang 的切片页面 https://tour.golang.org/moretypes/7

本篇关于《声明切片》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>