我试图在Swift中使用随机数生成器srand(time(NULL)),但是我得到了这个编译错误:
使用未解析的标识符'NULL'
还有另一种方法我应该使用srand()吗?
Swift nil用于NULL指针,并且返回值time()必须强制转换为UInt32:
srand(UInt32(time(nil)))
Run Code Online (Sandbox Code Playgroud)
但请考虑使用arc4random()或其变体.来自http://nshipster.com/random/:
arc4random不需要初始种子(使用srand或srandom),使其更容易使用.arc4random具有范围高达0x100000000(4294967296),而rand和random顶出在RAND_MAX = 0x7FFFFFFF的(2147483647).rand通常以一种定期循环低位的方式实现,使其更具可预测性.
例如,
let x = arc4random_uniform(10)
Run Code Online (Sandbox Code Playgroud)
生成0 ... 9范围内的随机数.
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |