fun 함수명(매개변수):Unit {
}
fun 함수명(매개변수):리턴타입 {
return 값
}
고차함수(High-order Function)란 다른 함수를 인자로 사용하거나, 함수를 결과값으로 반환하는 함수를 말한다.
package com.myapp.funcargs |
람다 표현식
람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수 (Anonymous Functions)를 지칭하는 용어이다.
val lambdaName: Type = {argument -> codeBody}
람다 함수는 { } 안에 매개변수와 함수 내용을 선언하는 함수로 다음 규칙에 따라 정의한다.
- 람다 함수는 항상 { }으로 감싸서 표현해야 한다.
- { } 안에 -> 표시가 있으며 -> 왼쪽은 매개변수, 오른쪽은 함수 내용이다.
- 매개변수 타입을 선언해야 하며, 추론할 수 있을 때는 생략할 수 있다.
- 함수의 반환값은 함수 내용의 마지막 표현식이다.
fun sum(a: Int, b: Int) = a + b
를 람다 함수로 정의하면
val sum ={a: Int, b: Int -> a + b}
또는
val sum: (Int, Int) -> Int ={a, b -> a + b}
package com.myapp.funcargs |
확장함수(Extension Function)
Extension functions(확장 함수)는 기존에 정의된 클래스에 함수를 추가하는 기능이다.
자신이 만든 클래스는 새로운 함수가 필요할 때 쉽게 추가할 수 있다.
하지만 Standard Library 또는 다른 사람이 만든 라이브러리를 사용할 때 함수를 추가하기가 매우 어렵다.
확장 함수는 fun 클래스이름.함수이름(매개변수): 리턴타입 { 구현부 }으로 정의할 수 있다.
또는
fun 확장하려는대상.함수명(매개변수):Unit {
}
fun 확장하려는대상.함수명(매개변수):리턴타입 {
return 값
}
확장함수 예제1
class Car { |
확장함수 예제2
fun String.getLonggerLength(x: Int) : Int { |
fun main(args: Array<String>) { |
확장함수 예제3
class Car { |
확장함수 예제4
fun List<Int>.getHigherThan(num: Int): List<Int> { |
'안드로이드 > Kotlin 문법' 카테고리의 다른 글
코틀린 object (0) | 2020.01.19 |
---|---|
코틀린 data class (자바의 getter 와 setter 클래스) (0) | 2020.01.16 |
코틀린 접근 제한자 (0) | 2020.01.14 |
코틀린 패키지 (0) | 2020.01.13 |
코틀린 인터페이스 (0) | 2020.01.13 |