๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/Swift

28. ๊ณ ์ฐจ ํ•จ์ˆ˜ - iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์Šค์œ„ํ”„ํŠธ ๊ธฐ์ดˆ

reujusong 2020. 6. 23. 16:04

- ๊ณ ์ฐจ ํ•จ์ˆ˜

  • ๊ณ ์ฐจ ํ•จ์ˆ˜(Higher-order function)๋Š” '๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›๊ฑฐ๋‚˜ ํ•จ์ˆ˜์‹คํ–‰์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜'๋ฅผ ๋œปํ•œ๋‹ค.
  • ์Šค์œ„ํ”„ํŠธ์˜ ํ•จ์ˆ˜(ํด๋กœ์ €)๋Š” ์ผ๊ธ‰์‹œ๋ฏผ(์ผ๊ธ‰๊ฐ์ฒด)์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฒˆ ํŒŒํŠธ์—์„œ๋Š” ์Šค์œ„ํ”„ํŠธ ํ‘œ์ค€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์šฉํ•œ ๊ณ ์ฐจํ•จ์ˆ˜[map, filter, reduce]์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.
  • map, filter, reduce ํ•จ์ˆ˜๋Š” ์Šค์œ„ํ”„ํŠธ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ปจํ…Œ์ด๋„ˆ ํƒ€์ž…(Array, Set, Dictionary ๋“ฑ)์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

 

 - map

  • mapํ•จ์ˆ˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ˜•(transform)ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

- filter

  • filterํ•จ์ˆ˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๊ฐ’์„ ๊ฑธ๋Ÿฌ์„œ ์ƒˆ๋กœ์šด ์ปจํ…Œ์ด๋„ˆ๋กœ ์ถ”์ถœํ•œ๋‹ค.

 

- reduce

  • reduceํ•จ์ˆ˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์ฝ˜ํ…์ธ ๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•œ๋‹ค.