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 ?? ""と書けるわけですね
ちょっと、短くなりました