【发布时间】:2016-01-26 10:04:43
【问题描述】:
我正在使用 Swift 中的下标,遵循《精通 Swift 2》一书:
// SUBSCRIPTS WITH RANGES
struct MathTableWithRanges{
var num : Int
subscript(index : Int)->Int{
return num * index
}
subscript(aRange: Range<Int>)->[Int]{
var retArray : [Int] = []
for i in aRange{
retArray.append(self[i])
}
return retArray
}
}
// Test code
var table = MathTable(num: 5)
var myRange : Range<Int> = 2...5
print(table[myRange])
预期输出:10,15,20,25
错误:无法将 Range 类型的值转换为预期的参数类型 Int
注意:如果我对 Range 进行硬编码:
print(table[2...5])
我得到一个不同的错误: 二元运算符“...”不能应用于两个 Int 操作数
【问题讨论】:
-
您的代码对我有用,使用正确的类名时没有错误。 (screenshot)。检查你的 Xcode 版本号,至少应该是 7。