请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

slice的设计思想是什么呢?

想问下老师,slice为什么要设计成可以向后扩展的特性呢?感觉让人理解起来会有点困惑,看不到的范围却还是拿到,感觉是不是这背后有什么深意呢?

正在回答

1回答

这是个好问题。首先没什么深意,只是必然的设计。
go在基本语法部分主要是c/c++为基础,用java/python等的优点弥补c++的缺点。c++中就有用begin, end这一对指针来提供对数组的“视图”,见std::sort函数的定义。c++的话,当然是可以扩展的。
然后slice在append的时候会改写掉底层数组后面的值,因此它也必须能向后扩展。扩展之后的slice不是原来的slice,因此和原来slice是否看得到不矛盾。
至于为啥不能向前扩展,这只是没有必要。

0 回复 有任何疑惑可以回复我~
  • 提问者 PeterSix3244453 #1
    了解了,那是不是为了可读性,使用切片尽量还是要写可视范围之内好一些,官方也没有类似的建议吗?
    回复 有任何疑惑可以回复我~ 2018-03-16 09:09:24
  • ccmouse 回复 提问者 PeterSix3244453 #2
    这个没有什么标准,要看具体的应用场景
    回复 有任何疑惑可以回复我~ 2018-03-16 18:33:13
  • 提问者 PeterSix3244453 回复 ccmouse #3
    谢谢老师
    回复 有任何疑惑可以回复我~ 2018-03-16 19:53:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信