swift始めました|swiftでifを省略する?

スポンサーリンク
swift

あまのじゃくな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をどれだけ減らせるか!なんて、挑戦もありと思いますよ

日々修行

コメント

タイトルとURLをコピーしました