水夫と戯れて

Appleの開発言語Swiftのことを書く。公開されている範囲内で書いています。文章に「?」が含まれているところはよく理解していないところ。

条件分岐

目次>

if

( )はいらない。 ( )があってもいい。 ( )をつけないのが基本の流儀

        var myMember = 1
        if myMember <= 3 {
            println("メンバーは3人以下です。")
        }  

if〜else

        myMember = 5
        
        if myMember <= 3 {
            println("メンバーは3人以下です。")
        }else{
            println("メンバーは3人以下ではありません。")
        }  

if〜else if〜else

switch〜case

caseに文字列が使えたりする breakはいらないみたいだけど(あってもいいみたい) caseに追加して条件をつけることができる case .South where i == 1 みたいな

enum NSEventTypeの要素を分岐させる場合、NSEventType.LeftMouseDownとしても良いし、省略して .LeftMouseDown とすることもできる。

var type:NSEventType = event.type
        switch type {
        case .LeftMouseDown :
            NSLog("LeftMouseDown")
            break
        case .LeftMouseUp :
            NSLog("LeftMouseUp")
        default :
            break
        }
タプル

caseにタプル)?が使える こんなの

case (-2...2, -2...2):

ポイント値の範囲などに使える

case 2, 3, 5, 7, 11, 13, 17, 19:のように複数の値を設定することができる

func function004()  {
        let integerToDescribe = 5
        var description = "The number \(integerToDescribe) is"
        switch integerToDescribe {
        case 2, 3, 5, 7, 11, 13, 17, 19:
            description += " a prime number, and also"
            fallthrough
        default:
            description += " an integer."
        }
        println(description)
        // prints "The number 5 is a prime number, and also an integer.”
        
    }

もっと範囲が広い場合は ... で範囲を指定することができる

        case 4...9:
        case 10...99:
        case 100...999:
        case 1000...999_999:
バリューバインディング
where
制御文
  • continue すぐにループの先頭にジャンプする
  • break すぐにループを終了する
  • fallthrough そのまま次へ通す。Cでbreakを使わない場合と同じ?
  • return
ラベル文

複数のネスト化されたループがある場合に使用 ループに名称を付けることができて、breakするときに、どこに戻るかを明記できる。