- 순수함수
- 함수 외부의 다른 값을 변경하지 않는다
- 함수 내부에서 입/출력이 발생하지 않도록 한다
- 함수를 실행하는 중에 부수효과가 발생하지 않아야 한다
- 일급 객체 함수
- 함수 내에 함수, 클래스, 변수 등을 선언가능해야 한다.
- 함수를 변수처럼 사용가능해야 함
- 람다함수를 이용
- 함수 참조(::)를 이용 (남발하지 않는 것이 좋음)
- 람다 표현식
- 람다식, 람다함수를 지칭하는 표현으로 익명함수를 나타냄
- 코드의 간결함을 추구
- 람다함수는 고차함수의 매개변수나 리턴값으로 사용가능
- 람다함수는 fun과 함수이름을 명시하지 않고 축약형으로 선언
- 람다함수도 타입을 가질 수 있음
- 람다함수 규칙
- 반드시 {,,} 로 표현
- {}안에 ->가 있으면 왼쪽은 매개변수, 오른쪽은 함수의 내용
- 매개변수 타입을 선언할 때 추론할 수 있으면 생략 가능
- 함수의 반환 값은 함수 구현 코드에서 맨 마지막 표현식
- 람다함수를 멤버 참조를 이용하여 호출 가능 / :: 을 사용
- 고차 함수
- 매개변수로 함수를 전달받거나 함수를 리턴하는 함수들을 총칭
- 함수형 언어에서는 함수도 값 취급
- 고차함수의 매개변수가 함수 타입이면 함수 호출시 () 생략 가능
- 맨 마지막 매개변수가 람다일 때는 {}로 뺄 수 있다.
- 람다를 리턴 할 수 있다.
- 수신 객체 고차함수
- run()
- 단순히 람다함수를 실행하고 리턴 값을 얻는 목적
- 객체의 멤버를 접근하기 위해 사용
- apply()
- run과 비슷하나 반환 값은 호출한 객체
- 수신 객체의 함수를 사용하지 않고 수신 객체 자신을 반환하려는 경우
- 객체의 필드 초기화시 많이 사용
- let()
- 자신을 호출한 객체를 매개변수로 전달받는 수신객체 내장 람다함수
- 객체가 Null이 아니면서 실행해야 하는 경우
- with()
- run과 비슷하나 매개변수로 해당 객체를 전달
- Null이 아닌 객체에서 결과를 제공하지 않고 with 함수를 호출하여 사용
- also()
- 객체 자기 참조가 필요한 경웨 보통 사용
- 유효성 체크시 유효함
- apply와 같이 해당 수신 객체를 반환하므로 다른 값을 반환시 사용 못함
- run()
'Kotlin' 카테고리의 다른 글
Kotlin이란(12) (0) | 2023.09.04 |
---|---|
Kotlin이란(11) (0) | 2023.09.04 |
Kotlin이란(9) (0) | 2023.09.02 |
Kotlin이란(8) (0) | 2023.08.31 |
Kotlin이란(7) (0) | 2023.08.31 |