Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active December 31, 2015 01:58
Show Gist options
  • Save KentarouKanno/ab389fa6779da7aaae28 to your computer and use it in GitHub Desktop.
Save KentarouKanno/ab389fa6779da7aaae28 to your computer and use it in GitHub Desktop.
map

Array map

★ クロージャが返した値の配列を返す。

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")]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment