πŸ‘©πŸ»‍πŸ’»/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ν•¨μˆ˜λŠ” μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ μ½˜ν…μΈ λ₯Ό ν•˜λ‚˜λ‘œ ν†΅ν•©ν•œλ‹€.