reduce()
reduce() ํจ์๋ Swift์ ์ปฌ๋ ์
ํ์
(๋ฐฐ์ด, ๋์
๋๋ฆฌ, ์ธํธ ๋ฑ)์ ์ ์ฉํ ์ ์๋ ๊ณ ์ฐจํจ์ ์ค ํ๋์ด๋ค.
โข
์ด ํจ์๋ ์ปฌ๋ ์
์ ์์๋ค์ ๊ฒฐํฉํ์ฌ ํ๋์ ๊ฐ์ผ๋ก ์ถ์ฝํ๋ ์ญํ
reduce() ๋ ์ด๊ธฐ๊ฐ๊ณผ ๊ฒฐํฉ ํด๋ก์ ๋ฅผ ๋ฐ์์ ์ปฌ๋ ์
์ ๋ชจ๋ ์์์ ๋ํด ํด๋ก์ ๋ฅผ ์ ์ฉํ๊ณ , ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
reduce() ํจ์์ ๊ธฐ๋ณธ ํํ
func reduce<Result>(
_ initialResult: Result, // ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ์ด๊ธฐ๊ฐ, ์ถ์ฝ ์ฐ์ฐ์ ์์์
_ nextPartialResult: (Result, Self.Element) throws -> Result
) rethrows -> Result
Swift
๋ณต์ฌ
์์ )
let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { (result, number) in
result + number
}
print(sum) // ์ถ๋ ฅ: 15
Swift
๋ณต์ฌ
let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 }
print(sum)
Swift
๋ณต์ฌ
โ reduce ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ์ฝ๋๋ก ์ปฌ๋ ์
์ ์์๋ค์ ๊ฒฐํฉํ ์ ์๋ค.
์๊ฐ๋ณต์ก๋ ์ฐจ์ด
for๋ฌธ๊ณผ reduce() ๋๋ค ์๊ฐ๋ณต์ก๋๋ O(n)์ ๋์ผํ๋ค.