ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์Œ~ ์ฒซ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

๋ญ๋ถ€ํ„ฐ ์จ์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. (๋ˆ„๊ฐ€ ๋ด์ค„์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ)

 

ํ˜„์žฌ ์‹œ์ ์—์„œ ๊ฐ•์˜ ํ•™์Šต ์ค‘ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค ํ•˜๋Š” ์šฉ์–ด๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์•ž์œผ๋กœ๋„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋ชจ๋ฅด๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋‚˜๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

 

 

 

์ฒซ ๋ฒˆ์งธ. compactMap

 

์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ

 

์• ํ”Œ ๋ฌธ์„œ์—์„œ compactMap ์ •์˜๋Š”

๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. nil์ด ์•„๋‹Œ ๊ฒฐ๊ณผ๊ฐ’์˜ ๋ฐฐ์—ด์„

 

 

 

map์€

map(ํ•จ์ˆ˜, ์ž๋ฃŒํ˜•) ์ด๋ ‡๊ฒŒ ์ƒ๊ฒจ์„œ ์ž๋ฃŒํ˜•์„ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

 

 

๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์˜ˆ์ œ๋กœ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

Map vs CompactMap

 

์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ

 

map์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ์ฃ ? (์˜ˆ์ œ ๋‘๋ฒˆ์งธ ์ค„) ํ•จ์ˆ˜์˜ ํ˜•ํƒœ๋Š” ํด๋กœ์ €์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ž์—ด์ธ ๋ฐฐ์—ด๋“ค์˜ ์š”์†Œ๋ฅผ Intํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋„ค์š”

 

Int(three)๋Š” nil์ด๊ณ  ๋ฌธ์ž์—ด์ธ 1์˜ Int(1)์€ 1์ด ๋˜๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

 

map๊ณผ compactMap์˜ ์ฐจ์ด๋Š” nil์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  ์ฐจ์ด๋„ค์š” 

 

 

 

 

 

+๋„ˆ๋ฌด ์งง์œผ๋‹ˆ ์ถ”๊ฐ€ ๋‚ด์šฉ

 

๊ณต์‹๋ฌธ์„œ ๋ฐ‘์— ๋ณด๋‹ˆ๊น ์ด๋Ÿฐ ๊ฒŒ ์žˆ๋„ค์š” flatMap์€ ๋˜ ๋ฌด์Šจ ์ฐจ์ด?

 

์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ

 

Deprecated๋ผ ๋– ์žˆ๋Š” ๊ฑธ ๋ณด๋‹ˆ swift๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ flatMap์ด compactMap์œผ๋กœ ๋Œ€์ฒด๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ flatMap์ด ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์—ฌ์ „ํžˆ ์‚ด์•„๋‚จ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

flapMap์€

๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ๊ฒฐ๊ณผ๋ฅผ concatenate (์—ฐ๊ฒฐ) ํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋„ค์š”.

 

 

 

์ƒ์„ธํ•œ ์„ค๋ช… ๋ณผ๊ฒŒ์š”. (์• ํ”Œ๊ณต์‹๋ฌธ์„œ)

 

์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ

 

ํด๋กœ์ €์˜ ๋‚ด์šฉ์€

 

๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š”๋ฐ, ๋ฐฐ์—ด์˜ ๊ฐ’์„ ๊ฐ’๋งŒํผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค

 

 

 

์ฐจ์ด๊ฐ€ ๋ณด์ด์‹œ์ฃ ?  [[1], [2, 2], [3, 3, 3] ... ]  vs  [1, 2, 2, 3, 3, 3 ...]    (ํ›„์ž๊ฐ€ flatMap)

 

In fact์— ๋ณด๋ฉด ๋ฐฐ์—ด์„ joined() ์‚ฌ์šฉํ•ด ์—ฐ๊ฒฐ์‹œ์ผฐ๋Œ€์š”.

 

 

 

flat: ํ‰ํ‰ํ•œ

 

์ด๋ฆ„ ์ž˜ ์ง€์—ˆ๋„ค์š”. ์—ญ์‹œ ์• ํ”Œ ๋„ค์ด๋ฐ ์„ผ์Šค ใ„ทใ„ท

 

flatMap์€ ๋ฐฐ์—ด์ด ๋ฆฌํ„ด๋˜์–ด 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฑธ 1์ฐจ์› ๋ฐฐ์—ด๋กœ ํ‰ํ‰ํ•˜๊ฒŒ ์ญ‰ ์ด์–ด ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

 

 

์•„๋ฌดํŠผ ์ด๋ ‡๊ฒŒ ํ•ด์„œ 

 

map, compactMap, flatMap

 

์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

 

 

 

์“ฐ๊ณ  ๋ณด๋‹ˆ ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•œ ๊ฑธ ์ •๋ฆฌํ•œ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค

 

 

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค:)

 

 

 

๋Œ“๊ธ€