あまのじゃくなHkaruapp(@hikaruapp)です。
swiftでコードを書いているとifが激減するのですが、たまに必要になり綺麗な(自己満)コードが一気に汚くなる。これ我慢できないんです。
あまのじゃくですから。
そんな時のifでカッコ含めて3行必要なのが1行にする裏技です(冗談です)
nil判定
例えば、文字列を数字に変換する時に、文字列の中に数字以外の文字があった時は、nilになります。結果をnilではなく0にしたい時
ifの場合
let str = "abc100" var integerValue = 0 if let strToInteger = Int(str) { integerValue = strToInteger }
まあ、こんな感じですよね。次はこれをカッコ良く1行で済ませます。
かっこいいnil処理
let str = "abc100" let integerValue = Int(str) ?? 0
う〜ん、惚れ惚れ〜。
気をつけないといけないのが、??の前にはスペースが必要です。
もう一つ行ってみよう!
これ今回の本命です。
objective-Cにもあった式をswiftにも移植してくれていました。嬉しいじゃないですか。
条件で値を振り分ける
例えば値が60以上であればtrue、未満はfalseにしたい
ifの場合
let integerValue = 60 var flag = false if integerValue >= 60 { flag = true }
こんな感じですよね
かっこいい条件処理
let integerValue = 60 var flag = (integerValue >= 60) ? true:false
キタァ〜!!(笑)
これも、?の前にスペースが必要です。
まとめ
コードも汚くならないし、1行で書けるってほんと幸せです。
ぜひ!活用して、ifをどれだけ減らせるか!なんて、挑戦もありと思いますよ
日々修行
コメント