代码之家  ›  专栏  ›  技术社区  ›  E. Huckabee

这个ActionScript代码行的Swift等价物?

  •  0
  • E. Huckabee  · 技术社区  · 6 年前

    this 开发教程变成了swift,因为我想自学BSP。我遇到了一行我不完全理解的代码。

    var splitH:Boolean = FlxG.random() > 0.5;
    

    这是我迄今为止的尝试:

    var splitH = Int(arc4random_uniform(2) + 1)
    var splitB = false
    

    我把这行分为两个值,因为我不知道如何把它作为一行。这是正确的方法吗?

    var splitH:Bool = Int(arc4random_uniform(2) + 1)
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Shamas S    6 年前

    这里也可以使用三元运算符。

    var splitH = arc4random_uniform(100) > 50 ? true : false
    

    var splitH = arc4random_uniform(100) > 50
    
        2
  •  0
  •   user28434'mstep    6 年前

    注意:假设 FlxG.random() 返回的是均匀随机的 0.0 1.0 . 如果它有不同的分布,它将不起作用,ofc。

    如果我们说的是4.2之前的Swift,您的线路相当于:

    let splitH: Bool = arc4random_uniform(2) == 1
    

    Swift 4.2+

    let splitH: Bool = Double.random(in: 0.0 ..< 1.0) > 0.5