我遇到了一个问题,试图使用下标访问Range的第n个元素。该代码是超级简单:模糊使用“下标”
var range = 0..<9
var itemInRange = range[n] // n is some Int where 0 <= n < 9
第二行抱怨与错误Ambiguous use of "subscript"
,我采取意味着Xcode中不明确的变量range
的类型是什么,所以它无法知道哪一个实现subscript
使用。我试图用
var range: Range<Int> = 0..<9
和
var firstInRange = (range as Range<Int>)[0]
但是这些都解决了这个问题明确界定range
类型解决这一问题。有没有办法让Xcode消除对subscript
的呼叫?
您的推荐代码工作得很好,但我完全被你支持张贴的公理混淆。你能告诉我这个来源吗?对于我来说,一个范围中不是从零开始的第零个元素是零。 – Ziewvater
对不起。我应该包括这个链接。 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Reference/Swift_Range_Structure/index.html – Moriya
所以根本就不可能在'Range'上使用下标吗?考虑到苹果给出的推理,我想这是有道理的,但它似乎是如此的人为设计,并且立即可以被证明是没有道理的。他们提出的公理有没有一些奇怪的计算机科学理论? – Ziewvater