ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Swift Functions โ€” Returning Values and When to Skip the Return Keyword ๐Ÿ“ค
Dev.toDev.to
Frontend

Swift ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ๊ตฌ์กฐ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ๋ฐ€๋„ ํ–ฅ์ƒ ๋ฐ ํƒ€์ž… ์•ˆ์ •์„ฑ ํ™•๋ณด

Swift Functions โ€” Returning Values and When to Skip the Return Keyword ๐Ÿ“ค

Gamya2026๋…„ 6์›” 14์ผ8๋ถ„beginner

Context

ํ•จ์ˆ˜ ๋‚ด ๋กœ์ง ์ฒ˜๋ฆฌ ํ›„ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ธ๋ถ€๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œ์–ด ํ•„์š”์„ฑ ์ฆ๋Œ€. ๊ธฐ์กด์˜ ๋ช…์‹œ์  ๋ฐ˜ํ™˜ ๋ฐฉ์‹์€ ๋‹จ์ˆœ ๋‹จ์ผ ์‹ ์—ฐ์‚ฐ ์‹œ ๋ถˆํ•„์š”ํ•œ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ํ•œ๊ณ„ ์กด์žฌ.

Technical Solution

  • -> Type ๊ตฌ๋ฌธ์„ ํ†ตํ•œ ์ •์  ํƒ€์ž… ์ •์˜๋กœ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์˜ Return Value ๋ณด์žฅ ๋ฐ ๋Ÿฐํƒ€์ž„ ์•ˆ์ •์„ฑ ํ™•๋ณด
  • ๋‹จ์ผ Expression์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ•จ์ˆ˜ ๋‚ด return ํ‚ค์›Œ๋“œ ์ƒ๋žต ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ๋ฐ ๋ฐ€๋„ ์ตœ์ ํ™”
  • Expression๊ณผ Statement์˜ ๊ตฌ๋ถ„์„ ํ†ตํ•œ ๊ฐ’์˜ ๋„์ถœ ์—ฌ๋ถ€ ํŒ๋‹จ ๋ฐ ์•”์‹œ์  ๋ฐ˜ํ™˜ ๋กœ์ง ์ ์šฉ
  • if ๋ฌธ์„ Expression์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋ถ„๊ธฐ๋ณ„ ๊ฒฐ๊ณผ๊ฐ’์„ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ๋ฐ˜ํ™˜ ๊ตฌ์กฐ ์„ค๊ณ„
  • Early Return ํŒจํ„ด์„ ์ ์šฉํ•œ Guard Clause ๊ตฌํ˜„์œผ๋กœ ์ค‘์ฒฉ If ๋ฌธ ์ œ๊ฑฐ ๋ฐ ํ•จ์ˆ˜ ์ง„์ž…์ ์—์„œ์˜ ๋น ๋ฅธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

- ํ•จ์ˆ˜ ๋ณธ๋ฌธ์ด ๋‹จ์ผ Expression์ธ ๊ฒฝ์šฐ `return` ํ‚ค์›Œ๋“œ ์ œ๊ฑฐ๋ฅผ ํ†ตํ•œ ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ ์œ ์ง€ - ๋ณต์žกํ•œ ์กฐ๊ฑด๋ฌธ ๋Œ€์‹  if/else Expression์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜ ๊ฐ’์˜ ์ผ๊ด€์„ฑ ํ™•๋ณด - ํ•จ์ˆ˜ ์ƒ๋‹จ์— Guard Clause๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๋น„์ •์ƒ ์ผ€์ด์Šค๋ฅผ ์กฐ๊ธฐ ์ข…๋ฃŒ์‹œํ‚ค๋Š” Early Return ์ „๋žต ์ฑ„ํƒ - ๋ฐ˜ํ™˜ ํƒ€์ž… ๋ช…์‹œ๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ˆ„๋ฝ๋œ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๊ฐ์ง€ํ•˜๋„๋ก ์„ค๊ณ„

์›๋ฌธ ์ฝ๊ธฐ