Kotlin inline
๋ฐฐ๊ฒฝ
- ๊ณ ์ฐจ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ํ ๋ฐํ์ ํ๋ํฐ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ๊ฐ ํจ์๋ ๊ฐ์ฒด์ด๋ฉฐ, Closure๋ฅผ ์บก์ฒํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ํจ์ ๊ฐ์ฒด์ ํด๋์ค์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ํธ์ถ์ ๋ฐํ์์์ ์ค๋ฒํค๋๋ฅผ ์ ๋ฐํ๋ค.
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ค๋ฒํค๋๋ ๋๋ค ํํ์์ ์ธ๋ผ์ธ ์ฒ๋ฆฌํจ์ผ๋ก์จ ์ ๊ฑฐํ ์ ์๋ค.
์์
# ํจ์ํ์ผ๋ก ์ ์ธ๋ ์์
lock(l) { foo() }
# ์ปดํ์ผ๊ฐ ์๋ ํํ๋ก ์ต์ ํํ ์์
l.lock()
try {
foo()
} finally {
l.unlock()
}
- ์ฝํ๋ฆฐ์์
inline
ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ๋ก ํธ์ถ ์ง์ ์ ์ง์ ์ฝ์
(inline) ํ๋ค.
- ๊ทธ๋ ์ง๋ง ๋๋ฌด ํฐ ํจ์์ inline์ ์ฌ์ฉํ๋๊ฑด ์ฑ๋ฅ์์ผ๋ก ์ด๋์ ๋ณผ ์ ์๋ ์ฃผ์ํด์ผ ํ๋ค.
See Also
Reference