Swift:带有范围错误的下标

时间:2016-01-26 10:04:44

标签: swift range

我正在玩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操作数

1 个答案:

答案 0 :(得分:0)

我没有你正在使用的书,但这一行:

var table = MathTable(num: 5)

应该是这样的:

var table = MathTableWithRanges(num: 5)