728x90
인라인 함수 (Inline Function)
- 해당 함수가 호출되는 곳에 함수 본문의 내용을 모두 복사해 넣어 함수의 분기없이 처리
- 코드 성능 높임
- 내용이 대게 짧음
- CPU, 메모리 비용 아낌
fun main() {
temp(3,5)
temp(2,7)
//인라인 키워드가 없으면 2번 분기
}
inline fun temp(a : Int, b : Int)
{
println(a)
println(b)
}
확장 함수 (Extension Function)
- 기존 클래스에 내가 원하는 멤버 메서드를 추가해서 확장시켜서 사용할 수 있는 기능
fun main() {
var a = 3
a.plusmore(5)
}
fun Int.plusmore(other : Int) : Int
{
println("wow")
return this + other
}
기존의 Int 클래스에 plusmore이라는 함수를 추가해서 사용
중위 함수 (Infix Function)
- 멤버 함수를 호출할 때, '.'과 괄호를 생략하여서 함수명을 연산자의 역할로 구현할 수 있는 함수
- 멤버 메서드, 혹은 확장 함수여야 함
- 1개의 파라미터만 가져야 한다.
- infix 키워드 사용
import kotlin.math.absoluteValue
infix fun Int.add(a : Int) : Int
{
return absoluteValue + a
}
fun main() {
println(5 add 5)
/* 결과
10
*/
}
728x90
'Kotlin' 카테고리의 다른 글
[코틀린] 상속 (0) | 2020.09.18 |
---|---|
[코틀린] break와 continue에 라벨 사용 (0) | 2020.09.18 |
[코틀린] 콜백 함수 (0) | 2020.09.18 |
[코틀린] 함수형 프로그래밍 (0) | 2020.09.18 |
[코틀린] 함수 선언 및 사용 (0) | 2020.09.18 |
댓글