我正在编写一个通用(数字)类,需要将Uint32结果(从arc4random()
强制转换为通用T。T被限制为数字。该怎么办?
答案 0 :(得分:0)
Numeric
协议具有一个init?(exactly:)
可失败的初始化程序,该初始化程序带有一个BinaryInteger
参数。如果T
符合Numeric
,则可以
guard let val = T(exactly: arc4random()) else {
// Handle error ...
}
如Alexander所述,您可能想利用新的随机API,例如
guard let val = T(exactly: UInt32.random(in: 0..<100)) else {
// Handle error ...
}