Swift:带有范围错误的下标

标签 swift range

我正在按照《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/

相关文章:

c++ - 存储一组非重叠范围并严格查找值是否存在于任何一个范围中

使用选择和范围对象的 JavaScript 标记编辑器

ios - 如何通过闭包将数据从一个 ViewController 传输到另一个

ios - 快速离线下载 youtube 视频

python - 如何通过确保所有随机数至少使用一次来获得随机数列表?

r - 对于给定标识符,按日期范围对行求和

swift - 在 Swift 中将 double 转换为十六进制表示法

swift - 运算符使用不明确 '>'

swift - 为什么没有 Swift 等效项来向 View 添加操作?

sql - 不在日期范围内