tamast
@tamast

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

[Swift] Hoge: do{ fuga() }という文法

Q&A

Closed

解決したいこと

Swiftのコードを見ていて以下のようなコードを見かけました。

  Hoge: do {
    fuga()
  }

これはどのような挙動をするのでしょうか?

わかっていること

do文はスコープを表し、スコープの中で定義された変数はスコープの外で使用できない。

0

1Answer

dodo文と呼ばれる文です。Hoge: doの部分は文にラベルをつける記法です。この例ではあまり意味がありませんが、例えばforにラベルをつけると便利なことがあります。

xloop: for x in 0..<10 {
    for y in 0..<10 {
        // 何かしらの条件で二重ループを一気にbreakしたい
        // breakだと内側のループしかbreakできない
        break xloop  // これでxloopのラベルのついた`for`をbreakすることができる
    }
}

実際、以下のように書いてみると「Hi」だけが出力されることがわかります。

foo: do {
    print("Hi")
    break foo
    print("Goodbye")
}
1Like

Comments

  1. @tamast

    Questioner

    解決しました。
    ありがとうございます。

Your answer might help someone💌