Swift のメモ書きです。

ankurp/Dollar.swift という JavaScript の Lo-Dash や Underscore と同じ感じでコレクションを扱うためのライブラリがありますが、 each が配列しか受け付けることが出来ないので、SequenceType を受け取れるように拡張する方法のメモです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Dollar

extension $ {
    class func each<T: SequenceType>(array: T, callback: (T.Generator.Element) -> ()) -> T {
        for elem in array {
            callback(elem)
        }
        return array
    }
}

$.each(["a", "b", "c"]) { (s: String) in println(s) }
$.each(["key": "val"]) { (e: (String, String)) in println("\(e.0) = \(e.1)") }
// a
// b
// c
// key = val