Swift 3項演算子

3項演算子 基本形 if文を短くかける

? と : で書く

 条件 ? trueの場合  :  falseの場合

例文

var boolValue = true

//もし boolValue がtrueなら aをそうでないならbを代入しなさい
var ret1 = boolValue ? "a" : "b" 
=> ret1 = "a"

//もしboolValueがnilならa をそうでないなら bを代入しなさい
var ret2 = !boolValue ? "a" : "b"
=>   ret2 = "b"

if文の例

//もしstringValueが存在するなら
if (stringValue){
  ret = "a"
}else{
  ret = "b"
}

上記が3項演算子の例

var ret = stringValue : "a" : "b"

実装コード 3項演算子

f:id:happy_teeth_ago:20201028053034p:plain

if文で書くとこうなる

f:id:happy_teeth_ago:20201028052725p:plain

実装コード 別事例

//jusho が""空白でないなら 
        let url = jusho != "" ?
//urlにはこれを代入
            URL(string:"comgooglemaps://?q=\(jusho)&center=\(datPerson.latitude),\(datPerson.longitude)&zoom=14&views=traffic")!
            :  //コロン以下は 偽の時の処理を記載
//空白なら url にはこちらを代入 文字列でなく、coredataの値を直接渡している
            URL(string:"comgooglemaps://?center=\(datPerson.latitude),\(datPerson.longitude)&zoom=14&views=traffic")!