Dun*_*ald 72 conditional swift
我如何在Swift中执行此操作?
(someboolexpression ? "Return value 1" : "Return value 2")
Run Code Online (Sandbox Code Playgroud)
(不,我还没有阅读整本手册......我可能在第2页错过了它!)
好,所以它在第91页和上面似乎是正确的.但是我试图在这样的字符串中使用它:
println(" some string \(some expression ? "Return value 1" : "Return value 2")"
Run Code Online (Sandbox Code Playgroud)
但编译器不高兴.如果可能的话,有任何想法吗?
这是我能够得到的尽可能接近
let exists = "exists"
let doesnotexist= "does not exist"
println(" something \(fileExists ? exists : doesnotexist)")
Run Code Online (Sandbox Code Playgroud)
Mik*_*e S 116
如果你正在寻找一个单行代码,你可以?:从字符串插值中取出操作并连接+:
let fileExists = false // for example
println("something " + (fileExists ? "exists" : "does not exist"))
Run Code Online (Sandbox Code Playgroud)
输出:
某些东西不存在
Vit*_*nko 22
您可以使用Swift 3中引入的新Nil-Coalescing Operator.如果是,它将返回默认值someOptionalnil
let someValue = someOptional ?? ""
Run Code Online (Sandbox Code Playgroud)
如果someOptional为false,则此运算符分配nil给""
Esq*_*uth 19
var firstBool = true
var secondBool: Bool
firstBool == true ? (secondBool = true) : (secondBool = false)
Run Code Online (Sandbox Code Playgroud)
如果在这种情况下,它将secondBool更改为firstBool.您也可以使用整数和字符串来完成此操作
它称为“ 三元运算符 ”。
关于@Esqarrouth的答案,我认为更好的格式是:
斯威夫特3:
var firstBool = true
var secondBool: Bool
secondBool = firstBool ? true : false
Run Code Online (Sandbox Code Playgroud)
这与:
var firstBool = true
var secondBool: Bool
if (firstBool == true) {
secondBool = true
} else {
secondBool = false
}
Run Code Online (Sandbox Code Playgroud)
你太近了哦.只需要将它分配给变量:
self.automaticOption = (automaticOptionOfCar ? "Automatic" : "Manual")
Run Code Online (Sandbox Code Playgroud)
知道为什么同一个表达式不能嵌入字符串中吗?
你可以这样做:
let a = true
let b = 1
let c = 2
println("\(a ? 1: 2)")
Run Code Online (Sandbox Code Playgroud)
我在项目中使用的简单解决方案
斯威夫特 3+
var retunString = (state == "OFF") ? "securityOn" : "securityOff"
Run Code Online (Sandbox Code Playgroud)
好,
如果使用+运算符将条件与字符串连接在一起,则它应该起作用。
因此,迈克是正确的。
var str = "Something = " + (1 == 1 ? "Yes" : "No")
Run Code Online (Sandbox Code Playgroud)
我使用像这样的内联条件:
isFavorite 函数返回一个布尔值
favoriteButton.tintColor = CoreDataManager.sharedInstance.isFavorite(placeId: place.id, type: 0) ? UIColor.white : UIColor.clear
tourOperatorsButton.isHidden = place.operators.count != 0 ? true : false