はじめに
Twitterで流れてきたツイートでこんなことができるんだ。。。
と思ったことがあったので記録しておきます。
Swift has a `for-case-let` syntax, which is equivalent to the `for-in...if-let` syntax. The former makes code cleaner but less expressive.
— Lee Kah Seng (@Lee_Kah_Seng) March 29, 2023
Personally, I would prefer to use the latter syntax to keep my code expressive. I wonder how commonly the `for-case-let` syntax is used. 🤔 pic.twitter.com/Fngk9h4e40
以前書いたこちらの記事と似ていますね
色々なリファクタ術があって面白いです。
ツイートの画像が全てなのですが、一応記録しておきます。
実装
データ
let characters: [String?] = [
"アイアンマン",
"キャプテン・アメリカ",
nil,
"スパイダーマン",
nil,
"ハルク"
]
実装パターン1
for character in characters {
if let character {
print(character)
}
}
実装パターン2
for case let character? in characters {
print(character)
}
おまけ
characters
.compactMap { $0 }
.map { print($0) }
おわり
いろんな実装方法があって面白いです