Swift相当于这行ActionScript代码吗?

时间:2018-09-25 10:01:47

标签: swift

由于我要自学BSP,因此我正在将this开发教程中的ActionScript代码转换为快速内容。我遇到了我不太了解的代码。

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

以某种方式,他们将整数转换为布尔值。这条线的快速等效量是多少?这对我来说没有任何意义。他们还如何将随机值转换为布尔值? Swift不允许这种“杂交”。

到目前为止,这是我的尝试:

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

我将这条线分成两个值,因为我不知道如何将其作为一行。这是正确的方法吗?

这不起作用:

var splitH:Bool = Int(arc4random_uniform(2) + 1)

2 个答案:

答案 0 :(得分:1)

您也可以在此处使用三元运算符。

类似

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

或者简单地

var splitH = arc4random_uniform(100) > 50

答案 1 :(得分:0)

N.B .:假设FlxG.random()返回0.01.0之间的均匀随机数。如果它具有不同的分布,则将无法正常工作,

如果我们谈论的是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