【发布时间】:2015-07-13 23:53:02
【问题描述】:
我想创建一个 Swift 数组的扩展,它返回随机 N 个元素。
extension Array {
func getRandomItems(max:Int) -> [T] {
var randomItems = [T]()
repeat
{
let randomNumber = Int(arc4random_uniform(UInt32(self.count)))
if contains(randomItems, self[randomNumber]) {
randomItems.append(self[randomNumber])
}
} while (randomItems.count < max)
return randomItems
}
}
print(["Canada","Brazil","China","Japan","U.S"].getRandomNumbers(3))
编译器说“不能使用类型为 '([T], T)' 的参数列表调用 'contains' 如何让这个功能发挥作用?
【问题讨论】:
标签: ios arrays swift generics xcode6