我正在玩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
注意:如果我硬编码范围:
print(table[2...5])
我得到了另一个错误: 二进制运算符'...'不能应用于两个Int操作数
答案 0 :(得分:0)
我没有你正在使用的书,但这一行:
var table = MathTable(num: 5)
应该是这样的:
var table = MathTableWithRanges(num: 5)