在Swift中创建一个具有随机布尔值的数组

时间:2016-02-07 23:34:24

标签: arrays swift random

我正在开发一个函数,我必须创建一个随机布尔值的数组,我迷失了如何在函数内部工作。任何有关这方面的帮助将不胜感激。可悲的是,我只限于关于名称的规则以及我必须如何做到这一点,所以你看到的是我必须使用的一般结构,但我不明白这在逻辑上是如何不是在woking。

func thirdFunction() {
//var numOfTrue = 0
//var numOfFalse = 0
var someTrue = true

var randBools = [Bool] ()

for num in 1...10{
    let random = arc4random_uniform(2)
    print(random)
    if (random == 0){
        someTrue = false
        randBools.append(someTrue)
    } else {
        randBools.append(someTrue)
    }
}
print (randBools)
}

3 个答案:

答案 0 :(得分:2)

这有效:

var array: [Bool] = []

func randomizer() {
    var bool: Bool = false

    for num in 1...10 {
        let random = arc4random_uniform(2)
        if random == 0 {
            bool = false
        } else {
            bool = true
        }
        array.append(bool)
    }
    print(array)
}

答案 1 :(得分:1)

当随机数为零时设置someTrue = false,但是当随机数为1时,不要将其设置为true。因此,在第一个零之后,无论随机数如何,您都会在每次后续迭代中将false放入数组中。

答案 2 :(得分:0)

let result = Array(1...10).map { _ in arc4random_uniform(2) == 1 }
print(result) // [false, true, true, false, true, true, true, false, false, true]

不确定这是否是你想要的。 (感谢Leo纠正我的错误)

根据你的意见:

// Create an array of 1 / 0
let array = Array(1...10).map { _ in arc4random_uniform(2) }

// Convert the array to Bool
randBools = tempArray.map { Bool(Int($0)) }

输出:

print(randBools) // [false, false, true, true, false, false, true, true, true, true]