Pragmatic ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

SwiftでArray内のOptionalをunwrapする

なにを言っているのかよくわからないタイトルになってますが、 Array<T?>をArrayにする方法です。(Swift1.2以降)

いろいろやり方はありますが、一番手短にかける方法は このようにflatMapにかけるだけ

let array1: [String?] = ["1", nil, "2"]
let array2 = array1.flatMap{ $0 }

というのも、mapとflatMapはinterfaceにも微妙な違いがあるため

func map<T>(@noescape transform: (Self.Generator.Element) -> T) -> [T]
func flatMap<T>(@noescape transform: (Self.Generator.Element) -> T?) -> [T]