bool参数设置为什么意味着什么? 1.0:0.0?

时间:2017-05-27 17:34:47

标签: ios swift boolean-logic

我遵循教程,其中一个参数是bool:

  func fadeImageView(imageView: UIImageView, toImage: UIImage, showEffects:Bool) {
}

但是在函数体中提供bool值时,值为:

self.view.alpha = showEffects ? 1.0: 0.0

我假设bool只能有真值或假值。这是什么? 1.0:0.0意味着什么?

3 个答案:

答案 0 :(得分:2)

self.view.alpha不是bool属性。它是CGFloat

您尚未将Bool指定给alpha属性。示例中的三元运算符表示“如果showEffectstrue,则将alpha 1.0 ,否则 0.0

答案 1 :(得分:1)

这里有两件事情,所以我会回答他们两个。

view.alpha不是Bool,而CGFloat的有效值介于1.00.0之间。例如,0.5的alpha为50%不透明。

?:是一个特殊的运营商。与使用2个值执行操作的+*不同,?:执行具有3个值的操作。这就是它被称为ternary operator的原因。第一个值是条件,将被评估为truefalse。如果条件为true,则第二个值是操作的结果。如果条件为false,则第三个值是操作的结果。

<conditional value> ? <when true value> : <when false value>相当于:

func ternaryOperation(_ conditionalValue: Bool, _ whenTrueValue: CGFloat, _ whenFalseValue: CGFloat) -> CGFloat {
    if (conditionalValue) {
        return whenTrueValue
    } else {
        return whenFalseValue
    }
}

…

self.view.alpha = ternaryOperation(showEffects, 1.0, 0.0)

答案 2 :(得分:0)

这是ternary conditional operator。如果a ? b : c评估为真,则b会返回a,否则会返回c