Created
July 23, 2015 10:08
-
-
Save es-kumagai/df58a16990fce38035af to your computer and use it in GitHub Desktop.
guard で where を Playground で試してみたらうまく動かなくておかしいなと思っていたら、大域だと動きが違う様子でした。 #CodePiece
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// この場合はエラー | |
// 大域で、同じ変数名で Optional Binding するとビルドが通らない(string が Optional のまま) | |
guard let string = string where !string.isEmpty else { | |
print("GUARD") | |
exit(0) | |
} | |
// この場合は OK | |
// 大域でも別の変数名で Binding すると通る(新しい変数 s なら Optional が解けている) | |
guard let s = string where !s.isEmpty else { | |
print("GUARD") | |
exit(0) | |
} | |
// この場合は OK | |
// 関数に包むと let の後の where で同じ名前の変数でも適切に扱える | |
func test() { | |
guard let string = string where !string.isEmpty else { | |
print("GUARD") | |
exit(0) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment