我正在按照《Mastering Swift 2》一书在 Swift 中使用下标:
// 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
注意:如果我对范围进行硬编码:
print(table[2...5])
我收到另一个错误: 二元运算符“...”不能应用于两个 Int 操作数
最佳答案
我没有你正在使用的书,但是这一行:
var table = MathTable(num: 5)
应该是这样的:
var table = MathTableWithRanges(num: 5)
关于Swift:带有范围错误的下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011261/