繁体   English   中英

参数类型&#39;范围 <Int> &#39;不符合预期类型&#39;序列&#39;Swift3

[英]Argument type 'Range<Int>' does not conform to expected type 'Sequence' 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] Array创建序列。

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

我建议你使用CountableRange<Int>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM