ํจ์ ํ์
ํจ์ ํ์
์ ์ (T) -> Boolean : Boolean์ ๋ฐํํ๋ ํจ์ Predicate (T) -> R : ๊ฐ ํ๋๋ฅผ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณํํ๋ ํจ์ transfrom (T) -> Unit : Unit์ ๋ฐํํ๋ ํจ์ operation ํจ์ ํ์
ํ์ฉ invoke๋ผ๋ ๋จ ํ๋์ ๋ฉ์๋๋ง ์ ๊ณตํจ, ๋ช
์์ invokeํธ์ถ๊ณผ ()์ฐ์ฐ์๋ก ํธ์ถ ํจ์ํ์
ํ๋ผ๋ฏธํฐ๋ฅผ ()? ๋ก ๊ฐ์ธ์ ๋๋ฌ๋ธํจ์ ํํํ ์ ์์ (์ด๊ฒฝ์ฐ๋ ๋ช
์์ invoke๋ง ๊ฐ๋ฅ) named parameter ํจ์ ํ์
์ ์ ์ ํ ๋ โnamed parameterโ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ ์ค์ง ๊ฐ๋ฐ ํธ์๋ฅผ ์ํ ๊ฒ ์ต๋ช
ํจ์ ์ต๋ช
ํจ์๋ ํจ์ ํ์
๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ํํ์ generic, default parameter๋ ์ง์ํ์ง ์์ val add2 = fun(a: Int, b: Int) = a + b ์ต๋ช
ํจ์ ์์ฒด๋ ์์ฆ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํจ ๋๋ค๊ฐ ๋ ์งง๊ณ ์ง์์ด ๋ ์๋จ ์ธํ
๋ฆฌ์ ์ด๋ ๋๋ค๋ง ํํธ๋ฅผ ์ ๊ณต ๊ทธ๋๋ ์๋์ ๊ฐ์ ์ํฉ์๋ ์์ง ์ ์ฉ return ๋ฒ์ ๋ช
ํํ ๊ตฌ๋ถํ๊ณ ์ถ์ ๋ ํ์
๋ช
์์ ์ ์ธ (๋๋ค๋ณด๋ค ๊น๋) return์ ๋ช
์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ ๋ ๊ณ ์ฐจํจ์ ์ธ์๊ฐ 2๊ฐ ์ด์์ด๊ณ ๋ณต์กํ ๋ ๋๋ค ํํ์ ์ฝํ๋ฆฐ์์ ๋๋ค ํํ์(lambda expression)์ return์ ํ์ฉํ์ง ์๋ ์ด์ ๋, ๋๋ค๊ฐ ๊ทธ ์์ฒด๋ก โ๋
๋ฆฝ์ ์ธ ์คํ ํ๋ฆโ์ ๊ฐ๋ ํจ์๊ฐ ์๋๋ผ, โํธ์ถ๋๋ ์ปจํ
์คํธ์ ์์กดํ๋ ์์ ์ฝ๋ ๋ธ๋กโ์ด๊ธฐ ๋๋ฌธ์
๋๋ค....