Go切片的长度和容量

时间:2015-12-22 19:36:44

标签: arrays go slice

假设我们有b片这样的

from images import mainwindow
from PyQt4.QtGui import QWidget, QMainWindow

class mainwindow_ui(QMainWindow):
      def __init__(self):
          QMainWindow.__init__(self)
          self.ui = uic.loadUi('mainwindow.ui',self)
          button = self.ui.exitBtn
          self.ui.show()

和切片" c"由" b"

组成
{{1}}

问题是我们为什么长度为2" c"?我也期待长度为零,就像b一样,因为我们正在制作c

1 个答案:

答案 0 :(得分:6)

是的,切片可以让你访问原始切片len之外的元素(虽然不超出其cap,或者谁知道你要访问的内存)。

这意味着,例如,您可以实现类似append的功能,将len增加的“增长”切片返回到更接近cap的位置。也就是说,appendlencap之间区域的访问不仅可用于内置函数;你也拥有它。在切片上的Go博客条目中查看Append: an example以查看它已完成(如果有兴趣阅读整篇文章;它有助于使整个切片有意义。)

The spec on slice expressions(和slice types)和Slice Tricks page也可能很有趣。