嗨,我在 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 的 lowerBound
和 upperBound
属性为 [Int]
的数组创建序列。
var r = [Int](range.lowerBound..<range.upperBound)
关于ios - 参数类型 'Range<Int>' 不符合预期类型 'Sequence' Swift3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39824943/