我在臭名昭着的SevenSwitch课程中遇到了一行代码.
这是线......
backgroundView.layer.cornerRadius = self.isRounded ? frame.size.height * 0.4 : 2
Run Code Online (Sandbox Code Playgroud)
我不明白是什么?或 :在等式的末尾.有人可以解释一下这些是什么意思以及如何使用它们?
运算符可以是一元,二元或三元的:
这是三元运营商在三个目标上运营.与C一样,Swift只有一个三元运算符,即三元条件运算符(a?b:c).
来自Apple Documents Basic Operators
三元条件算子
三元条件运算符是一个特殊的运算符,有三个部分,它采用形式问题?回答1:回答2.它是根据问题是真还是假来评估两个表达式之一的快捷方式.如果问题为真,则评估answer1并返回其值; 否则,它会评估answer2并返回其值.
根据你的问题,如果isRound是真的那么角落无线电是frame.size.height其他它是2.
如同条件:
if(self.isRounded){
backgroundView.layer.cornerRadius = frame.size.height * 0.4
}
else{
backgroundView.layer.cornerRadius = 2.0
}
Run Code Online (Sandbox Code Playgroud)
的?和:是ternary operators.它们只是if语句的简写.
将var a = b ? c : dwhere b为布尔值的英文翻译设置a为cif 等于btrue,将dif设置b为false.
所以,例如,
backgroundView.layer.cornerRadius = self.isRounded ? frame.size.height * 0.4 : 2
Run Code Online (Sandbox Code Playgroud)
可以翻译成
if(self.isRounded){
backgroundView.layer.cornerRadius = frame.size.height * 0.4
}
else{
backgroundView.layer.cornerRadius = 2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |