Swift 3項演算子

基本形

基本的にはif文を短くかける

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

上記が3項演算子だと

条件(?の前)が真の時 aを代入 そうでない時は :(コロン) 以下を代入

 条件 ? a : b

実装コード

//Optional型のstringValue に"hogehoge"を代入
var stringValue : String? = "hogehoge" 

//stringValueが存在するなら retに"a"を代入 そうでないなら "b"を代入 
var ret = stringValue ? "a" : "b"

//retは "a"が代入される
 // ret = "a"


stringValue = nil

//stringValueが存在するなら "a"を代入 そうでないなら "b"を代入 
var ret2 = stringValue ? "a" : "b" 

//存在しないので "b"が代入される
// ret = "b"

実装コード

//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")!