๊ด€๋ฆฌ ๋ฉ”๋‰ด

Welcome! Everything is fine.

[Kotlin] scope function์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ๋ณธ๋ฌธ

Kotlin

[Kotlin] scope function์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๊ฐœ๋ฐœ๊ณฐ๋ฐœ 2024. 11. 14.
728x90

๐Ÿ’ญ ๋ฉด์ ‘์—์„œ ๋ฐ›์€ ์งˆ๋ฌธ์„ ๊ฐ„๋‹จํžˆ ํฌ์ŠคํŒ…ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

์ฝ”ํ‹€๋ฆฐ์—์„œ Scope Function์€ ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•ด ์ž‘์—…ํ•  ๋•Œ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์ค‘๋ณต์„ ์ค„์ด๋Š” ํ•จ์ˆ˜๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ let, run, with, apply, also๊ฐ€ ์žˆ๋‹ค. ๊ฐ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ธ”๋ก ๋‚ด์—์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋ธ”๋ก์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋‚˜ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • let: ๊ฐ์ฒด๋ฅผ it์œผ๋กœ ์ฐธ์กฐํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋‹ค. ์ฃผ๋กœ Null ๊ฒ€์‚ฌ๋‚˜ ๊ฐ’ ๋ณ€ํ™˜์— ์‚ฌ์šฉ๋œ๋‹ค.
  • run: ๊ฐ์ฒด๋ฅผ this๋กœ ์ฐธ์กฐํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋‹ค. ๊ฐ์ฒด ์ดˆ๊ธฐํ™”๋‚˜ ํŠน์ • ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • with: ์ธ์ˆ˜๋กœ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ this๋กœ ์ฐธ์กฐํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • apply: this๋กœ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฃผ๋กœ ๊ฐ์ฒด ์„ค์ •์ด๋‚˜ ์ดˆ๊ธฐํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
  • also: ๊ฐ์ฒด๋ฅผ it์œผ๋กœ ์ฐธ์กฐํ•˜๋ฉฐ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋กœ๊ทธ ์ถœ๋ ฅ ๋“ฑ ๋ถ€๊ฐ€ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.