一尘不染

在Swift中进行编码时,方程式中的`?`或`:`是什么

swift

我在臭名昭著的SevenSwitch类中遇到了一行代码。

这是线…

backgroundView.layer.cornerRadius = self.isRounded ? frame.size.height * 0.4 : 2

我不明白方程式的结尾?是什么或 什么:。有人可以解释一下这些含义以及它们的用法吗?


阅读 250

收藏
2020-07-07

共1个答案

一尘不染

运算符可以是一元,二进制或三元:

这是三元运算符在三个目标上的运算。与C一样,Swift也只有一个三元运算符,即三元条件运算符(a?b:c)。

来自Apple Documents
基本操作员

三元条件运算符

三元条件运算符是具有三部分的特殊运算符,其形式为问题?答案1:答案2。这是根据问题是对还是错来评估两个表达式之一的快捷方式。如果问题为真,它将评估答案1并返回其值;否则,它评估answer2并返回其值。

根据您的问题, 如果isRound是真的,那么角落收音机是frame.size.height2。

就像条件:

if(self.isRounded){
    backgroundView.layer.cornerRadius = frame.size.height * 0.4
}
else{
    backgroundView.layer.cornerRadius = 2.0
}
2020-07-07