Created
November 30, 2017 06:17
-
-
Save hmhmsh/d9a835a8a4aa717566939d2c19e301af to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/ 条件にマッチする要素のみを取り出したい場合 | |
func filter(array: []) { | |
let newArray = array.filter { $0 < 3 } | |
// newArray -> [1,2] | |
} | |
// 各要素に対して処理を行い、かつ戻り値が必要ない場合 | |
func forEach(array: []) { | |
array.forEach { | |
print("\($0)") | |
} | |
} | |
let array = [1,2,3,4,5] | |
// 配列内の要素に処理を適用し、その処理を施した配列を使いたい場合 | |
func map(array: []) { | |
let newArray = array.map { $0 * 5 } | |
// newArray -> [5, 10, 15, 20, 25] | |
} | |
func map_dictionary() { | |
let celsius = ["Tokyo":14.0, "Osaka":17.0, "Okinawa":26.0] | |
let fahrenheit = celsius.map { ($0.0, 1.8 * $0.1 + 32) } | |
// fahrenheit -> [("Okinawa", 78.8), ("Tokyo", 57.2), ("Osaka", 62.6)] | |
} | |
/ 要素使って結果を集計したいような場合 | |
func reduce(array: []) { | |
let i = array.reduce(0) { (num1, num2) -> Int in | |
num1 + num2 | |
} | |
// i -> 15 | |
} | |
func reduce_2(array:[]) { | |
let s = array.reduce(0, combine: +) | |
// s -> 15 | |
let k = array.reduce(1, combine: *) | |
// k -> 120 | |
} | |
func reduce_dictionary() { | |
let queries = ["id=3", "token=abc", "tag=5"] | |
let params = queries.reduce([String: String]()) { (var dict, q) in | |
// qに各要素が順番にくる | |
// (dict, q) = ([], "id=3") | |
// (dict, q) = (["id": "3"], "token=abc") | |
// (dict, q) = (["id": "3", "token": "abc"], "tag=5") | |
let v = q.componentsSeparatedByString("=") | |
let (key, value) = (v[0], v[1]) | |
dict[key] = value | |
return dict | |
} | |
// params -> ["id": "3", "token": "abc", "tag": "5"] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment