什么是Swift中可以存在的最大数组?

时间:2015-02-06 03:52:44

标签: swift

Swift中的数组包含的元素数量是多少?只是一个假设的问题。

2 个答案:

答案 0 :(得分:1)

下标和count属性使用Int。这是你的最大值。我假设Int是32位数,但也许它是64位。因此,拥有一个比你可以计算或索引更大的数组是没有意义的。

实际上,根据platform,它是32位或64位。

答案 1 :(得分:1)

该语言不一定决定数组可以存储多少元素。因为它实际上是指向数组的指针,所以在RAM耗尽之前,您总是可以添加更多元素。凭借4GB的RAM,您理论上可以存储40亿(大约)字符,10亿个整数或40亿/(存储元素的大小),无论您存储什么。基本上,它取决于你的RAM。

然而,正如另一个答案所述,拥有count方法可以返回的更多元素的数组是不切实际的。也就是说,如果你继续添加RAM,那么你不一定能够存储更多(有一个截止值)。因此,检查编译器中发生的事情的快速方法是使用您选择的容量初始化NSMutableArray。过高会产生错误,“整数常数大于最大无符号整数类型”。通过Apple Docs搜索显示,可存储的最大int(UInt64)为18446744073709551615.实际上,尝试初始化一个容量只有一个的数组,您将收到错误消息。现在唯一的困境是,如果你想考虑数组可以存储的元素比你可以检索的更多的元素,我肯定这是不可能但无法验证。无论哪种方式,它都会破坏阵列本身的目的。