foldLeftλ λ μ μ°νκ³ μμ νλ©° λ€μν μν©μ μ ν©νμ§λ§, reduceλ λ¨μν μΆμ μμ
μμ κ°κ²°νκ³ ν¨μ¨μ μ
λλ€. μμ
μ μꡬ μ¬νμ λ°λΌ μ ν©ν λ©μλλ₯Ό μ ννμΈμ!
| μ¬μ© μΆμ² | foldLeft |
reduce |
|---|---|---|
| λΉμ΄ μλ 컬λ μ | β μμ | β μμΈ λ°μ |
| λ¨μ μΆμ (λμΌ νμ ) | β κ°λ₯ | β μ ν© |
| μ΄κΈ°κ° νμ μ¬λΆ | β λͺ μμ μΌλ‘ μ 곡 | β μμ |
| 볡μ‘ν μΆμ λ‘μ§ | β μ μ° | β μ ν©νμ§ μμ |
foldLeftνΉμ§:
B)κ³Ό λμ μ°μ° κ²°κ³Ό νμ
μ΄ μ»¬λ μ
μμμ νμ
(A)μ λ€λ₯Ό μ μμ΅λλ€.λ¬Έλ²:
collection.foldLeft(initialValue: B)((acc: B, elem: A) => accUpdated: B)
μμ :
val numbers = List(1, 2, 3, 4)
// ν©κ³λ₯Ό κ³μ° (μ΄κΈ°κ° 0)
val sum = numbers.foldLeft(0)(_ + _)
println(sum) // 10
// λ¬Έμμ΄ λ³ν (μ΄κΈ°κ°μ λΉ λ¬Έμμ΄)
val concatenated = numbers.foldLeft("")((acc, elem) => acc + elem.toString)
println(concatenated) // "1234"
reduceνΉμ§:
NoSuchElementException)κ° λ°μνλ―λ‘, νμ λΉμ΄ μμ§ μμμ 보μ₯ν΄μΌ ν©λλ€.λ¬Έλ²: