if else 使用三元
Using ternary for if else
我有这个 if-else 条件..
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
如何使用三元运算符来代替这个 if-else 条件..
我提到了 link..但没有帮助
对于内部 if:
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
给出:
theImage.contentMode = (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill : . scaleToFill
现在,如果我们做顶层,如果:
theImage.contentMode = UIDevice.current.iPad ? insideIf : . scaleAspectFill
完整代码:
theImage.contentMode = UIDevice.current.iPad ? (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill
: . scaleToFill
: . scaleAspectFill
这不是真正的红色。
但是
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
可能转化为:
if UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) {
theImage.contentMode = .scaleToFill
} else {
theImage.contentMode = .scaleAspectFill
}
更短,但可能更难阅读。
如果是三元:
theImage.contentMode = UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleToFill : . scaleAspectFill
在我看来?保留你的版本(或者我只使用一个 if/else 的版本)。尽管如此,编译器还是会进行优化,如果您能快速理解它的原因和作用,那么两个月后 fix/modify 它会更容易。
您可以将其分解为
theImage.contentMode = APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc ? .scaleAspectFill : .scaleToFill
我有这个 if-else 条件..
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
如何使用三元运算符来代替这个 if-else 条件..
我提到了
对于内部 if:
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
给出:
theImage.contentMode = (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill : . scaleToFill
现在,如果我们做顶层,如果:
theImage.contentMode = UIDevice.current.iPad ? insideIf : . scaleAspectFill
完整代码:
theImage.contentMode = UIDevice.current.iPad ? (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill
: . scaleToFill
: . scaleAspectFill
这不是真正的红色。
但是
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
可能转化为:
if UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) {
theImage.contentMode = .scaleToFill
} else {
theImage.contentMode = .scaleAspectFill
}
更短,但可能更难阅读。
如果是三元:
theImage.contentMode = UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleToFill : . scaleAspectFill
在我看来?保留你的版本(或者我只使用一个 if/else 的版本)。尽管如此,编译器还是会进行优化,如果您能快速理解它的原因和作用,那么两个月后 fix/modify 它会更容易。
您可以将其分解为
theImage.contentMode = APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc ? .scaleAspectFill : .scaleToFill