ios - 参数类型 'Range<Int>' 不符合预期类型 'Sequence' Swift3

标签 ios arrays swift range swift3

嗨,我在 Swift3 之后遇到错误。我该如何解决这个错误?这些方法提供不重复的随机数。

 func uniqueRandoms(_ count: Int, inRange range: Range<Int>, blacklist: [Int] = []) -> [Int] {
    var r = [Int](range)
        .filter{ !blacklist.contains($0) }
        .shuffle()

    return Array(r[0..<count])
}



extension Array {
func shuffle() -> Array<Element> {
    var newArray = self

    for i in 0..<newArray.count {
        let j = Int(arc4random_uniform(UInt32(newArray.count)))
        guard i != j else { continue }
        swap(&newArray[i], &newArray[j])
    }

    return newArray
}
}

谢谢

最佳答案

使用 range 的 lowerBoundupperBound 属性为 [Int] 的数组创建序列。

var r = [Int](range.lowerBound..<range.upperBound)

关于ios - 参数类型 'Range<Int>' 不符合预期类型 'Sequence' Swift3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39824943/

相关文章:

ios - 在 Swift 条件语句中使用 Bool 给出错误 : "initialization of variable newCard was never used"

iphone - 如何在iPhone的字符串中提取单个字节?

iphone - 喜欢 iOS 5 中的图表吗? (也许皮肤核心情节?)

ios - QuickBlox v2.6 Facebook 登录问题

php - 求关联数组中相同键值的平均值

ios - 在 NSUserDefaults 错误中存储 Int 和 Array 的字典

ios - 如何创建标签文本 slider

c - 如何在c中创建动态大小的数组?

c - C语言编程中的插入排序

ios - 在创建Observable/Single时将传递给ScheduleOn的调度程序