★ クロージャが返した値の配列を返す。
let numList = [1 ,2 ,3 ,4 ,5]
let value = numList.map ({(val:Int) -> Int in
// 配列の値に1を加えたものを返す
return val + 1
})
//=> value = [2,3,4,5,6]
// ※ 上記を省略したコード
let value = numList.map{$0 + 1}
// ------------------
var value = (1...3).map {( [$0, $0])}
//=> [[1, 1], [2, 2], [3, 3]] 2次元配列
class Sample {
var value: String = "value"
var data: String = "data"
}
var sample: Sample? = nil
// sampleがnilかチェックして、デフォルト値を返す
let value = sample.map{ "\($0.value) \($0.data)" } ?? "Default Value"
★ Intの配列、IntからStringの配列を生成する
let year: [Int] = (1965...2015).map{ $0 }
//=> [1965, 1966, 1967....2015]
let year: [String] = (1965...2015).map{ String($0) }
//=> ["1965", "1966", "1967"...."2015"]
★ 文字列からUIImageの配列を生成する
let images: [UIImage?] = ["image1", "image2", "", "image3"].map{ UIImage(named: $0) }
// mapを使用しない場合
let images: [UIImage?] = [UIImage(named: "image1"), UIImage(named: "image2"), nil, UIImage(named: "image3")]