% 运算符在 swift ios 中给出奇怪的结果

% operator giving strange result in swift ios

我熟悉数学以及 % 运算符(取模)为我们提供的某些值。但是,我正在听 Swift 代码讲座,讲师想要 return 一个介于 0 和视图高度的一半之间的值。他建立方程为:

var offSet = arc4random() % UInt32(self.frame.size.height / 2)

我一定是漏了什么。 arc 不会给出一个介于 0 和 1 之间的数字,然后在高度(大约 700 像素)上执行 % 总是会给出 0。但是每次代码为 运行 时,它都会偏移一个介于 0 和一半之间的随机数屏幕的高度。如果我将 % 更改为 * 程序崩溃。

想法?

Read the arc4random() man page

"arc4random() function returns pseudo-random numbers in the range of 0 to (2**32)-1"

因此您的随机数可能会很大,然后取模会将其带入 0 - (height/2 - 1)

的范围内