swift:arc4andom_uniform()的含义是什么

时间:2017-05-17 14:23:38

标签: ios swift

这可能是一个蹩脚的问题,甚至已经在SO中回答了。我甚至已经搜索过这个问题,但却无法以正确的方式理解。这里发生了什么...... ??请帮助我理解这一点。

    let size =  Double(arc4random_uniform(5)) + 1



   for index in 0..<ITEM_COUNT
{
    let y = Double(arc4random_uniform(100)) + 50.0
    let size =  Double(arc4random_uniform(5)) + 1
    entries.append(ChartEntry(x: Double(index) + 0.5, y: y, size: CGFloat(size)))
}

1 个答案:

答案 0 :(得分:0)

arc4random_uniform(x)返回0到x-1之间的随机值

示例:

  • arc4random_uniform(2) - &gt;随机返回0或1

  • arc4random_uniform(2) == 0随机返回true或false

  • arc4random_uniform(6) + 1返回1到6之间的数字(就像掷骰子一样)

arc4random_uniform(5)返回0到5之间的数字有很多原因,但主要原因是这是编程中的基本功能,其中数字从零开始。为什么这将有用的一个例子是从数组返回一个随机值。例如:

func randomArrayValue(array: [Int]) -> Int {
    let index = arc4random_uniform(array.count)
    return array[index]
}

let arrayOfInt = [10,20,30]
print("Random Int: \(randomArrayValue(array: arrayOfInt))")

//"Random Int: 10"
//"Random Int: 20"
//"Random Int: 30"

对于你问题中的这三行代码:

let y = Double(arc4random_uniform(100)) + 50.0
let size =  Double(arc4random_uniform(5)) + 1
entries.append(ChartEntry(x: Double(index) + 0.5, y: y, size: CGFloat(size)))
  • y是50到149之间的随机变量

  • size是1到5之间的随机变量

  • 然后将项目添加到进入图表的数组中。添加的值指定x位置(索引)和y位置(随机y值)。大小是一些特定于代码的要求,如果没有看到功能,我们将无法提供帮助。