为什么arc4random_uniform可以设置为常量?

Why arc4random_uniform can be set as a constant?

为什么arc4random_uniform可以设置为常量?我在多个示例中注意到了这一点。 arc4random_uniform 每次调用时都会生成一个新值,我认为常量的值应该永远不会改变?它看起来更像一个变量。

这令人困惑。

你可以让一个东西成为常量。在这种情况下,thing 是一个函数。您正在设置对函数的常量引用。将 arc4random_uniform() 视为一个随机数工厂。它是恒定的。它坐在那里,等待创造随机数,就像一个汽车工厂,坐在那里等待创造汽车。

当您调用随机数工厂时,它会为您提供一个新的随机数,但随机数工厂本身保持不变。

编辑:

如果您有一个函数的变量引用,那么您可以在该变量中存储不同的随机数工厂。每一个都可能具有不同的性能特征(速度、结果的真实随机性、结果范围等)