slice的设计思想是什么呢?

来源:3-2 切片的概念

PeterSix3244453

2018-03-14

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

写回答

1回答

ccmouse

2018-03-16

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

0
3
PeterSix3244453
回复
ccmouse
谢谢老师
2018-03-16
共3条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程