配列に入っている数値をスマートに合計したかった.
reduceを使えば一行でできることがわかった.
足し算だけでなく、引き算や掛け算にも応用できる.
配列内の数値の合計値を取得する
reduce.swift
let array: [Int] = [1, 2, 3, 4, 5]
let result: Int = array.reduce(0) { $0 + $1 }
print(result)
// 結果 -> 15
reduceでは{}
内の処理が要素数の分だけ繰り返される.
1回目の動き
reduce()
の中身は初期値.
自身で好きな値を入れられる.
reduce.swift
reduce(0)
// -> 初期値として 0 を代入している.
$0
// -> 初期値 0 が代入される.
$1
// -> 配列の要素が左(Indexが0の値)から代入される.(ここではarray[0] = 1)
n回目の動き
reduce.swift
$0
// -> (n-1)回目の計算結果が代入される.
$1
// -> array[(n-1)]の値が代入される.
合算(+)以外の計算
{}
の中身を-
や*
に書き換えれば繰り返し計算ができる.