【Swift 2】switch内にてguardでbreakする

公開日: : 最終更新日:2016/02/10 iOSアプリ開発

20151201-120520.jpg

Swift 2のguard内ではreturnしないと文法エラーとなりますが、実はswitch内ではbreakでもOKです。

    

switch内のguardでbreak

実際にはこんな感じ。

let n = getSomething()

switch n {
case 100...200:
    let a = calcSomething(n)

    guard a == 200 else {
        break
    }

    doSomething(n)
case 200...300:
    doSomething(n)
case 300...400:
    doSomething(n)
default:
    print("default")
}

caseの中において特定のケースで処理を打ち切りたいという場合に使えそうです。

    

continue, throw, fatalError()なども使える

returnやbreakだけでなく、continue, throw, fatalError()などの@noreturnなメソッドも使えます。

guard let a = aa else {
    continue
}
guard let a = aa else {
    fatalError("invalid data")
}

    

@akio0911はこう思った。

guardをうまく使ってEarly Exitさせると、見通しの良いコードが書けます。積極的に使っていきたいところです。

この記事を書いた人
あきお(@akio0911
iOSエンジニア、ブロガー。「プログラミングで人々を幸せに」をテーマに活動中。著書に「iPhoneアプリ開発レシピ」「cocos2d for iPhoneレッスンノート」など。東京・大阪にてアプリ開発講座「アプリクリエイター道場」を主催。 MAMORIO株式会社 技術顧問(インタビュー記事)、VISITS Technologies株式会社 技術顧問(インタビュー記事)。ブログ「卵は世界である」を運営。

関連記事

この記事が気に入ったら「いいね!」しよう

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

LINEでご感想・ご要望お送りください!
(スマホでLINEを起動 > 友だち追加 > QRコード)

【東京・銀座】粋華男(イケメン)製作所さんでメンズマツエクやメンズメイクなどを体験してきた

代表の手塚拓海さんからお誘いをいただき、粋華男(イケメン)

【入門】プログラム・プログラミング・プログラミング言語とは?

こんにちは、@akio0911です。 今回は「プログラム」「プロ

【入門】プログラミング未経験者向けのプログラミング入門連載記事を始めます

こんにちは、@akio0911です。 これからプログラミング未経

【RxSwift】BehaviorRelayとPublishRelayについてまとめてみた

こんにちは、@akio0911です。今回はRxSwiftのBe

【RxSwift】materialize, dematealizeを使ってみた

@toshi0383さんに教えていただいた、RxSwiftのm

→もっと見る

PAGE TOP ↑