slice的设计思想是什么呢?
来源:3-2 切片的概念

PeterSix3244453
2018-03-14
想问下老师,slice为什么要设计成可以向后扩展的特性呢?感觉让人理解起来会有点困惑,看不到的范围却还是拿到,感觉是不是这背后有什么深意呢?
写回答
1回答
-
这是个好问题。首先没什么深意,只是必然的设计。
go在基本语法部分主要是c/c++为基础,用java/python等的优点弥补c++的缺点。c++中就有用begin, end这一对指针来提供对数组的“视图”,见std::sort函数的定义。c++的话,当然是可以扩展的。
然后slice在append的时候会改写掉底层数组后面的值,因此它也必须能向后扩展。扩展之后的slice不是原来的slice,因此和原来slice是否看得到不矛盾。
至于为啥不能向前扩展,这只是没有必要。032018-03-16
相似问题