[swift] final, static, class ( + ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ, ํƒ€์ž… ํ”„๋กœํผํ‹ฐ )

final ์“ฐ๋Š” ์ด์œ ! static ์“ฐ๋Š” ์ด์œ ! class์™€ ์ฐจ์ด ํ•ญ์ƒ ์• ๋งคํ•˜๊ฒŒ ํ–ˆ๋˜ ๊ฒƒ๋“ค.. ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋Š” ๊ฒŒ ์ข‹๊ฒ ๋‹ค ์‹ถ์–ด์„œ ๊ธ€์„ ์”๋‹ˆ๋‹ค. ๊ธ€์ด ๋„ˆ๋ฌด ๊ธฐ๋‹ˆ๊น ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆด๊ฒŒ์š”. 1. final ์€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ. 2. static๊ณผ class์˜ ์“ฐ์ž„์€ ๋ฉ”์†Œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. -> ํƒ€์ž… ๋ฉ”์†Œ๋“œ, ํƒ€์ž… ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋จ, ์ฐจ์ด๋Š” static์€ ์ƒ์†์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค๋Š”์ . ์š”์•ฝ์„ ๋ณด๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€์‹ ๋‹ค๋ฉด (์ €๋Š” ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€์„œ ์ฐพ์•„๋ณด๊ณ  ์ •๋ฆฌํ•จ) ๋’ท๋ฐ›์นจ๋˜๋Š” ๋‚ด์šฉ๊นŒ์ง€ ์ƒ์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ์œผ๋‹ˆ, ๋‹ค ์ฝ์–ด๋ณด์‹ ๋‹ค๋ฉด ์ดํ•ด๋˜์‹œ๋ฆฌ๋ผ ์ƒ๊ฐํ•ด์š”. ์šฐ์„  ์ฒซ๋ฒˆ์งธ, final ์€ Overriding์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Overriding ์ด๋ž€? ๋ถ€๋ชจ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์†..

iOS & swift 2021. 4. 5. 23:01
[swift] Map vs CompactMap vs FlatMap

์ฒซ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ญ๋ถ€ํ„ฐ ์จ์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ํ˜„์žฌ ์‹œ์ ์—์„œ ๊ฐ•์˜ ํ•™์Šต ์ค‘ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค ํ•˜๋Š” ์šฉ์–ด๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋ชจ๋ฅด๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋‚˜๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ. compactMap ์• ํ”Œ ๋ฌธ์„œ์—์„œ compactMap ์ •์˜๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. nil์ด ์•„๋‹Œ ๊ฒฐ๊ณผ๊ฐ’์˜ ๋ฐฐ์—ด์„ map์€ map(ํ•จ์ˆ˜, ์ž๋ฃŒํ˜•) ์ด๋ ‡๊ฒŒ ์ƒ๊ฒจ์„œ ์ž๋ฃŒํ˜•์„ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์˜ˆ์ œ๋กœ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Map vs CompactMap map์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ์ฃ ? (์˜ˆ์ œ ๋‘๋ฒˆ์งธ ์ค„) ํ•จ์ˆ˜์˜ ํ˜•ํƒœ๋Š” ํด๋กœ์ €์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์ธ ๋ฐฐ์—ด๋“ค์˜ ์š”์†Œ๋ฅผ Intํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋„ค์š” Int(three)๋Š” nil์ด๊ณ  ๋ฌธ์ž์—ด์ธ..

iOS & swift 2021. 3. 26. 17:44