Swift標準関数のmapとfilter

Swift標準関数のmapとfilterSwiftの標準関数のmapとfilterについてちゃんと使えてなかったので、ちょっとメモとして書いておく。

map

var array = ["a10", "b10", "c11"]
var mappedArray = map(array, { $0 + " - 1"})
println("mapped: \(mappedArray)") // mapped: [a10 - 1, b10 - 1, c11 - 1]

コレクションの各要素に関数を適用し、その結果からなる新しい配列を返す。

  • func map<C: CollectionType, T>(source: C, transform:(S.Generator.Element) -> T) -> [T]
  • func map<S: SequenceType, T>(source: S, transform:(S.Generator.Element) -> T) -> [T]

第2引数の関数は引数を一つしか取らないからアクセスする際は$0でOK

もう一つ簡単なのもあった。

var u = 10
var mappedU = map(u, { $0 * 10 })
println("mapped: \(mappedU)") //mapped: Optional(100)

こちらは、第1引数に関数を適用した結果を返す。第1引数がnilならnilが返る。

  • func map<T, U>(x: T?, f:(T) -> U) -> U?

filter

var array = ["a10", "b10", "c11"]
var filteredArray = filter(array, { $0.hasSuffix("10") })
println("filtered: \(filteredArray)") // filtered: [a10, b10]

関数で指定した条件を満たす要素からなる新しい配列を返す。

  • func filter<S:SequenceType>(source: S, includeElement:(S.Generator.Element) -> Bool) -> [S.Generator.Element]

第2引数の関数は引数を一つしか取らないからアクセスするときは$0でOK

メモとして。

参考

Pocket
LINEで送る

You may also like...