NSBlogger

意識高いブログ

SwiftのArrayがもつ非破壊的メソッド「map」

var numbers:Array<Int> = [0,2,4,6,8]
var doubleNumbers:Array<Int> = numbers.map({
    (number:Int) -> Int in
    return number * 2
    })

numbers
doubleNumbers

結果はこちら

[0,2,4,6,8]
[0,4,8,12,16]

numbersから値をひとつずつとってきて2倍したものを返してます。
非破壊的なので、元のnumbersには変化なし。(クロージャですね)

構文はこんな感じです。

(配列).map({
          (配列の要素:要素の型) -> 戻り値の型 in
          
          /*処理*/
          
          return 戻り値
})


また、下記のように短く書くこともできます。

var halfNumbers = numbers.map({numbers in numbers/2})

numbers
halfNumbers
[0,2,4,6,8]
[0,1,2,3,4]