1. cia_rana

    No comment

    cia_rana
Changes in tags
Changes in body
Source | HTML | Preview
@@ -1,29 +1,37 @@
自分を含め、意外と間違っている人が多いのですが、
```go
for {
select {
default:
break
}
}
```
では for ループを抜けることができません。
これは switch の case や default 内で break を使っても switch は抜けらますが、その外側のループは抜けられないことと同じです。
恐らく default では例外処理を行うことが多く、例外処理のテストを適切に行っていないためこのバグが潜在しているものと思われます。
そこで、Labeled Break を使いましょう!
```go
L:
for {
select {
default:
break L
}
}
```
これでラベルの貼られた for から break L で抜けることができます。
+
+あ、func で包んで即実行してもいいですが Labeled Break のほうがより直感的ですね。
+
+<blockquote class="twitter-tweet" data-lang="en-gb"><p lang="ja" dir="ltr">labeled break が使えます。 <a href="https://t.co/7xKyxkaNs5">https://t.co/7xKyxkaNs5</a><a href="https://t.co/D5YXYsqqpx">https://t.co/D5YXYsqqpx</a></p>&mdash; mattn (@mattn_jp) <a href="https://twitter.com/mattn_jp/status/987720344512294913?ref_src=twsrc%5Etfw">21 April 2018</a></blockquote>
+<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
+
+<blockquote class="twitter-tweet" data-conversation="none" data-lang="en-gb"><p lang="ja" dir="ltr">結構積極的に使います。</p>&mdash; mattn (@mattn_jp) <a href="https://twitter.com/mattn_jp/status/987726348977192960?ref_src=twsrc%5Etfw">21 April 2018</a></blockquote>
+<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>