728x90
๊ณ ์ฐจํจ์
- ํจ์๋ฅผ ๋ง์น ํด๋์ค์์ ๋ง๋ค์ด๋ธ ์ธ์คํด์ค์ฒ๋ผ ์ทจ๊ธํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ํจ์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ค ์๋ ์๊ณ , ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐํ๋ฐ์ ์๋ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฝํ๋ฆฐ์์๋ ๋ชจ๋ ํจ์๋ฅผ ๊ณ ์ฐจํจ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๊ณ ์ฐจํจ์ ๊ตฌํ๋ฒ
fun main(){
b(::a)
}
fun a (str:String){
println("$str ํจ์ : a")
}
fun b (function: (String)->Unit) {
function("b๊ฐ ํธ์ถํ")
}
์ถ๋ ฅ
b๊ฐ ํธ์ถํ ํจ์ : a
- ํจ์ a๋ฅผ ๊ณ ์ฐจํจ์ ํ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ ์๊ฒ ๋ง๋ ๋ค.
- ํจ์๋ฅผ ์๋ฃํ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ๊ดํธ ์์ ํจ์๊ฐ ๋ฐ์ ํ๋ผ๋ฏธํฐ์ ์๋ฃํ์ ๋์ดํ๊ณ '->'๋ก ํ์ดํ๋ฅผ ๋ง๋ ๋ค ํจ์์ ๋ฐํํ์ ์ฐ๋ฉด ๋๋ค.
- ํจ์ a๋ ๋ฐํํ์ด ์์ผ๋ ๊ฐ์ด ์๋ค๋ ์๋ฏธ์ Unit์ผ๋ก ์ง์ ํ๋ค.
- ๋ฉ์ธ ํจ์์์ ํจ์ b๋ฅผ ํธ์ถํ ๋ ํจ์ a๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ค๋ค.
- ๊ณ ์ฐจํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ธธ๋ ค๋ฉด ํจ์ ์ด๋ฆ ์์ ์ฝ๋ก ๋๊ฐ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
๋๋ค์
- ๋๋ค์์ ์ฌ์ฉํ๋ฉด ํ๋ผ๋ฏธํฐ๋ก ๋๊ธธ ํจ์๋ฅผ ๊ตณ์ด ์ด๋ฆ๊น์ง ๋ถ์ฌ ๋ฐ๋ก ๋ง๋ค ํ์๊ฐ ์์ด์ง๋ค.
- ํจ์๋ฅผ ๋๋ค์์ผ๋ก ํํํ๋ ๋๋คํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
- ๋๋คํจ์๋ ์ผ๋ฐํจ์์ ๋ฌ๋ฆฌ ๊ทธ ์์ฒด๊ฐ ๊ณ ์ฐจํจ์์ด๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์ฐ์ฐ์ ์์ด๋ ๋ณ์์ ๋ด์ ์ ์๋ค.
- ๋๋คํจ์ ์ญ์ ๋ณ์์ ํ ๋นํ ๋๋ ํ์ ์ถ๋ก ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ์ข ๋ ์ถ์ฝํด์ ์ ์ ์ ์๋ค.
๋๋ค์ ๊ตฌํ๋ฒ
fun main(){
b(::a)
val c: (String) -> Unit = {str -> println("$str ๋๋คํจ์")}
b(c)
}
fun a (str:String){
println("$str ํจ์ : a")
}
fun b (function: (String)->Unit) {
function("b๊ฐ ํธ์ถํ")
}
์ถ๋ ฅ
b๊ฐ ํธ์ถํ ํจ์ : a
b๊ฐ ํธ์ถํ ๋๋คํจ์
- ํจ์ ์๋ฃํ์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๋๋ค์์ ์ ์ด์ค๋ค.
- '= {}'๋ฅผ ์ ๊ณ ์ค๊ดํธ ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์จ ๋ฌธ์์ด์ ๋งค์นญํ์ค ๋ณ์ ์ด๋ฆ์ ์จ์ค๋ค.
- ์ด๋ ์ฝ๋ก ์ ์ฐ๊ณ ์๋ฃํ์ ๋ถ์ด๋๊ฒ ๊ธฐ๋ณธ ํํ์ด์ง๋ง, ์ฌ๊ธฐ์์ ํจ์ํ์์ ์ ์ ์๋ฃํ์ ์ด๋ฏธ ํ๋ผ๋ฏธํฐ์ ์๋ฃํ์ด ์ ํ์ ธ ์์ด ์๋ฃํ์ด ์๋์ผ๋ก ์ถ๋ก ๋๋ฏ๋ก ์๋ตํด ์ค ์ ์๋ค.
- ์ด์ด์ '->'๋ก ํ์ดํ๋ฅผ ์จ์ค ํ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์จ ๋ฌธ์์ด์ "๋๋คํจ์"๋ผ๊ณ ์ถ๋ ฅํด์ค๋ค.
๋๋ค์์์ ํ์ ์ถ๋ก ๊ธฐ๋ฅ์ ์ด์ฉํด ์กฐ๊ธ ๋ ์ถ์ฝํด ์ ๋ ๋ฐฉ๋ฒ
// ์ด์
val c: (String) -> Unit = {str -> println("$str ๋๋คํจ์")}
// ์ดํ
val c: {str : String -> println("$str ๋๋คํจ์")}
- ํจ์์ ์๋ฃํ์ ์ ์ง ์๊ณ ๋ฐ๋ก ์ค๊ดํธ ์์ ์ง์ ํ๋ผ๋ฏธํฐ์ ์๋ฃํ๋ง ์ฐ๋ฉด ๋๋ค.
- ์ฝํ๋ฆฐ์ String์ ํ๋ ๋ฐ์ง๋ง ๋ฐํ๊ฐ์ ์๋ค๊ณ ์์์ ์ถ๋ก ํด์ ์ด์ ๋ง๋ ํจ์ํ์์ ๊ฐ์ฒด๋ก ๋ณ์์ ์ ์ฅํ ๊ฒ์ด๋ค.
๐ก๊ณ ์ฐจํจ์์ ๋๋คํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์๋ฅผ ๋ณ์์ฒ๋ผ ์ฌ์ฉํ ์ ์์ด์ ํธํ๊ณ ์ปฌ๋ ์
์ ์กฐ์์ด๋ ์ค์ฝํ ํจ์์ ์ฌ์ฉ์๋ ๋์์ด ๋๋ค.
728x90
'์๋๋ก์ด๋๐ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝํ๋ฆฐ] ์ค๋ธ์ ํธ & ์ต์ ๋ฒ ํจํด (0) | 2024.06.27 |
---|---|
[์ฝํ๋ฆฐ] ์ค์ฝํ ํจ์ (0) | 2024.06.27 |
[์ฝํ๋ฆฐ] ์ค์ฝํ & ์ ๊ทผ์ ํ์ (0) | 2024.06.26 |
[์ฝํ๋ฆฐ] ์ฝํ๋ฆฐ์ ํ๋ก์ ํธ ๊ตฌ์กฐ (0) | 2024.06.26 |
[์ฝํ๋ฆฐ] ์ค๋ฒ๋ผ์ด๋ฉ & ์ถ์ํ & ์ธํฐํ์ด์ค (2) | 2024.06.20 |