Swiftのコードを見ていて、
??
という表現を見かけました
どういう意味かわからなったので調べました
The Swift Programming Language (Swift 2): Basic Operators
Appleが提供しているSwift Programming Languageに書いてありましたね
a ?? b は、 Nil Coalescing Operator というもの
Optional型のaをアンラップしたときに、nilでないならaをアンラップしたものを返し、aがnilの場合は、bを返す
というもの
a ?? b
は、
a != nil ? a! : b
と同じことを示し、短く書くことができるというもの
なるほど。
MPMediaItem(ミュージックライブラリのアイテム)からタイトルやアーティスト名などを取得して表示する処理を書いていたけれども、そのさいtitleやartistは、String?型なので、nilだった場合は、””を表示していました
その処理部分、従来はこのように書いていました。
// MPMediaItemのtitle,artistを取得。nilの場合は""とする // (itemはMPMediaItemを示す) let title = item.title != nil ? item.title! : "" let artist = item.artist != nil ? item.artist! : ""
それが、Nil Coalescing Operator(a ?? b) を使うと
// MPMediaItemのtitle,artistを取得。nilの場合は""とする // (itemはMPMediaItemを示す) let title = item.title ?? "" let artist = item.artist ?? ""
と書けるわけですね
ちょっと、短くなりました