반응형
코틀린 함수 표현식 총정리
1. fun 표준 사용법
가장 기본적인 방법으로써, fun 키워드로 시작하고 ( ) 괄호안에 매개변수를 넣어주고 { } 중괄호내에서 로직을 구현후 return 으로 결과를 전달하면 된다.
Naming
- 소문자로 시작
- _, - 등과 같이 중간에 연결없이 대문자로 구분하는 Camel style (ex. calcDolla) 로 작성
Return
- 함수내에서 return 생략 가능
- 모든 타입을 반환 가능
- exit 으로 활용 가능
fun sum(x: Int, y: Int): Int {
return x + y
}
fun main() {
println("10 + 20 = ${sum(10, 20)}")
}
--
10 + 20 = 30
Default value
fun printMsg(name: String, message: String, city: String = "서울") {
println("$name: $message (장소: $city)")
}
fun main() {
printMsg("유재석", "유퀴즈 진행")
}
--
유재석: 유퀴즈 진행 (장소: 서울)
참고로, printMsg 함수에서 return 이 없었다. return은 생략이 가능하다.
2. fun 한 줄 사용법
{ } 안에 로직이 한 줄로 표현되고 그 결과가 바로 return 값이 된다면 생략이 가능하다. 이 경우에는 코틀린 자체적으로 Type Inference가 수행되기 때문에 Return Type도 생략이 가능하다. 즉, 모든 것이 한줄로 명확할때 사용하면 편리하다.
- { } 대신 = 사용
- return 생략
- return type 생략
fun multiply(x: Int, y: Int) = x*y
fun main() {
println("10 * 20 = ${multiply(10, 20)}")
}
---
10 * 20 = 200
3. Lambda 표현식
람다 표현식은 최대한 불필요한 표현들을 생략하고 하나의 변수처럼 간편히 사용할 수 있어서 매우 편리하다. 단, 가독성이 떨어지기 때문에 fun 한 줄 표현식과 적절히 섞어서 사용하면 좋을 것 같다.
- fun 표현 대신 { } 사용
- 람다를 받아줄 변수를 선언해야 한다.
- 입력과 return 사이는 -> 화살표로 표현
- 입력 변수가 없을때에는 -> 도 생략하고 { } 안에 로직 한줄만 작성할 수 있다.
val divide = { x: Int, y: Int -> x / y }
fun main() {
println("20 / 10 = ${divide(20, 10)}")
}
--
20 / 10 = 2
val welcome = { println("Welcome to Kotlin!")}
fun main() {
welcome()
}
--
Welcome to Kotlin!
4. 다른 함수에 입력값으로 전달할 수 있는 Lambda 표현식
람다는 하나의 변수처럼 사용될 수 있다고 위에서 설명하였다. 그러므로, 다른 함수에 입력 변수로도 사용될 수 있다.
특히, filter 와 map 에서 매우 유용한 방식이다.
Filter 에서 사용법
val studentScores = (10..100 step 5).toList()
val gradeA = studentScores.filter({x -> x >= 90})
val gradeB = studentScores.filter({x -> x >= 70 && x < 90})
println(studentScores)
println("Grade A is $gradeA")
println("Grade B is $gradeB")
--
[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
Grade A is [90, 95, 100]
Grade B is [70, 75, 80, 85]
참고로, 함수에 입력할때 ( )를 생략해도 되어 편리하다. " trailing lambda"라고 부른다.
val gradeA = studentScores.filter {x -> x >= 90}
val gradeB = studentScores.filter {x -> x >= 70 && x < 90}
Map 에서 사용법
Map은 내부 item 값들을 공통된 규칙으로 업데이트 할 때 유용하며, 람다 함수와 함께 쓰면 매우 편리하다.
val moneyThousandUnit = (1..9).toList()
val moneyUnit = moneyThousandUnit.map {x -> x * 1000 }
println(moneyThousandUnit)
println(moneyUnit)
--
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000]
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin 강의] Class 쉬운 설명 (0) | 2025.01.22 |
---|---|
[Kotlin 강의] Lambda 함수 Return Type 표현 방법 (0) | 2025.01.22 |
[Kotlin 강의] Range 사용법 (0) | 2025.01.22 |
[Kotlin 강의] if-else를 대체할 when 사용법 (0) | 2025.01.22 |
[Kotlin 강의] Map 응용 예제 (0) | 2025.01.21 |
댓글