낭만 프로그래머
Kotlin(코틀린) 공부하기 - 함수 본문
함수 |
1. 함수 선언
fun 함수명(매개변수명: 타입): 반환타입 { ... } |
2. 반환 값이 없는 함수
fun test(arg1: Int, arg2: Int) {
println("hello")
}
fun test2(arg1: Int, arg2: Int): Unit {
println("hello")
}
3. 반환 값이 있는 함수
fun test(arg1: Int, arg2: Int): Int {
return arg1+arg2
}
4. 매개변수를 초기화 하여 입력 값을 생략 할 수도 있다
fun test(arg1: Int, arg2: Int = 1004): Int {
return arg1+arg2
}
/* 사용 */
test(1) // 두번째 매개변수로 1004가 초기값으로 들어감
test(1, 1002) // 두번째 매개변수가 1002로 할당됨
람다 함수 |
1. 람다 함수 선언 예시
// 매개변수 2개를 받아서 합을 반환한다
val lamdaFun = { arg1: Int, arg2: Int -> arg1+arg2 }
// 매개변수 없이 프린트만 실행한다
val lamdaFun = { -> println("Hello") }
val lamdaFun2 = { println("Hello") }
// 변수가 하나일 경우 it 키워드를 사용 할 수 있다
var lamdaFun: (Int) -> Unit = { println(it) }
// 본문이 여러 줄일 경우 마지막 행이 반환값이 된다
// 전체 표현
val lamdaFun: (Int) -> Int = { arg: Int ->
var value: Int = arg + 1
value
}
// 선언에서 자료형 생략
val lamdaFun = { arg: Int ->
var value: Int = arg + 1
value
}
// 람다식 매개변수 자료형 생략
val lamdaFun: (Int) -> Int = { arg ->
var value: Int = arg + 1
value
}
{ println(42) }() // Lamda 선언 및 실행
run { println(42) } // Lamda 선언 및 실행. run 키워드를 쓰는 것이 명확함
2. 람다 함수를 매개변수로 넣기
fun testFun(x: Int, y: Int, arg: (Int, Int) -> Int): Int {
return arg(x, y)
}
/* 실행 */
var value = testFun(1, 2, { xValue, yValue -> xValue * yValue})
// 실행시에 람다 함수 변수가 맨 마지막에 있을 경우는 ()에서 {}를 빼낼 수 있다
var value2 = testFun(1, 2} { xValue, yValue -> xValue * yValue}
'Kotlin' 카테고리의 다른 글
Kotlin(코틀린) 배우기 - List, MutableList (0) | 2021.11.02 |
---|---|
Kotlin(코틀린) 배우기 - Array (0) | 2021.11.01 |
Kotlin(코틀린) 공부하기 - 제어문 (0) | 2021.11.01 |
Kotlin(코틀린) 배우기 - 변수 (0) | 2021.11.01 |
Kotlin(코틀린) 배우기 - 기본구조 (0) | 2021.11.01 |