Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 삼성파우치
- 삼성역량테스트
- tomtoc
- DataBinding
- 코딩테스트
- #충무로맛집#골목식당#스테이크#
- 탐탁삼성파우치
- Kotlin
- 싸피
- 비트마스킹
- Java
- 투포인터
- 안드로이드
- 등산로조성
- nullalble
- 알고리즘
- Android
- 탐탁노트북파우치
- Higher-Order
- lateinit
- 자바
- 삼성청년sw아카데미
- MVVM
- 코틀린
- 백준
- ssafy서울
- 안드로이드#코틀린#디자인패턴#싱글턴패턴#개발#앱개발
- bitmasking
- 아키텍처패턴
- kotiln
Archives
공상하는 개발자
[Kotlin] Higher-Order Functions 이란? 본문
반응형
Higher-Order Functions
-> 함수를 변수로 넘겨주거나, 이를 반환하는 것을 의미한다.
fun <T> prints(printFun: (keyword: String) -> T): T {
return printFun("hello world!")
}
prints 함수에 포함된 parameter인 printFun : (keyword: String) -> T 가 Higher-Order Functions에 해당한다.
- printFun : parameter 이름
- (keyword: String) -> T : (keyword: String) parameter가 String 타입의 keyword인 메서드를 정의하였고, ->T는 retrun 타입을 정의한다.
prints(printFun = {
print(it) //hello world! 출력
})
prints {
print(it) //hello world! 출력
}
위처럼 다른 형태의 두 함수는 똑같은 작동을 한다. 저런 식으로 higher-Order Functions을 사용 가능하다.
위의 경우는 파라미터가 1개인 경우인데 2개 이상인 경우를 알아보자
fun prints(printFun: (first: String, second: String) -> String) {
println(body("김찬영", "26살"))
}
fun main(args: Array<String>) {
prints { first, second -> "이름은 $first 나이는 $second" }
}
first 는 printFun의 첫 번째 파라미터이고 second는 두 번째 파라미터이다. 순서대로 사용하면 된다.
결론
Higher-Order Functions 는 함수를 좀 더 다양하게 사용하게 해 주고, 좀 더 편하게 코드를 짤 수 있게 해 준다. Generic와 함께 쓰면 좀 더 좋은 코드를 사용할 수 있을 것 같아서 Generic에 관한 블로그 글을 쓰겠다.
반응형
'개발 > 안드로이드' 카테고리의 다른 글
[아키텍쳐 패턴] 3탄 : MVVM 패턴 적용하기. (1) | 2020.04.19 |
---|---|
[Android/kotlin] DataBinding 파헤치기 (0) | 2020.02.09 |
[Kotlin] Null 안정성 파헤치기 (0) | 2020.01.25 |
[아키텍쳐 패턴] 2탄 : MVP 패턴 적용하기 (0) | 2020.01.19 |
[아키텍처패턴] 1탄 : Model 분리하기 (0) | 2020.01.12 |
Comments