use*_*314 12 random dictionary swift
所以我得到以下代码:
var myDic = [String: Customer]()
let s1 = Customer("nameee", "email1")
let s2 = Customer("nameee2", "email2")
let s3 = Customer("nameee3", "email3")
myDic[s1.name] = s1
myDic[s2.name] = s2
myDic[s3.name] = s3
Run Code Online (Sandbox Code Playgroud)
如何从字典中选择随机元素?我想我应该使用arc4random_uniform,但找不到任何文档.
Ale*_*yne 26
你必须抛出一些东西,但这似乎有效.
var dict:[String:Int] = ["A":123, "B": 234, "C": 345]
let index: Int = Int(arc4random_uniform(UInt32(dict.count)))
let randomVal = Array(dict.values)[index] # 123 or 234 or 345
Run Code Online (Sandbox Code Playgroud)
基本上,生成零和总项数之间的随机索引值.获取字典的值作为数组,然后获取随机索引.
您甚至可以将其包装在扩展中以便于访问.
Swift 4.2+ (Xcode 10+) 引入了两种简单的可能性。
let randomVal = myDict.values.randomElement()
Run Code Online (Sandbox Code Playgroud)
或随机元素:
let randomVal = myDict.randomElement().value
Run Code Online (Sandbox Code Playgroud)