일급함수 (First-Class Function): 함수를 값(객체)처럼 다룰 수 있음
일급함수 특징
- 객체로 취급 가능
- 다른 함수의 인자로 넘길 수 있음
- return 값으로 받을 수 있음
고차함수 (Higher-Order Function): 함수를 인자 / 반환값으로 다룰 수 있는 함수
다른 함수를 인자로 쓸 경우, 함수 이름 앞에 :: 를 써 줘야 함
람다 함수 (lambda function): 람다식 표현으로 작성한 함수, 그 자체가 고차함수이므로 별도의 연산자 없이 다룰 수 있음, 마지막 줄을 반환
함수 자료형 = { 인자 -> 수행할 연산 }
스코프함수: 함수형 언어의 특징을 조금 더 편리하게 사용하게 하기 위해서 제공
apply
- 인스턴스를 새로 생성하고 특정 변수에 할당하기 전에 초기화 작업
- 모든 명령들이 수행되고 나면 새로 생성된 인스턴스를 반환
run
- 스코프 내 명령 실행 결과값 반환
- 이미 만들어진 인스턴스의 값 혹은 그를 이용한 특정 계산 결과를 필요로 하는 경우 사용
- a.run
with
- run과 큰 차이점은 없으나, 파라미터 형태로 쓰임
- with(a)
also/let
- it (람다식 내부에서 사용되는 암시적 변수) 키워드 사용
{ it은 this와 비슷하나, this는 클래스의 인스턴스를 참조함 }
instance 반환 | 실행 결과 반환 |
apply | run |
also | let |
🙋🏻♂️ 이번 강의에서 특히 중요하다고 생각하는 것
함수 표현 방식이 상당히 많아서 좀 어지럽다… 여러 함수 방식들이 있는데 이 표현들을 어디에 어떻게 쓸지 많이 고민해 봐야 할 것 같다. 또한 아직 문법이 미숙해서 더 많이 프로그래밍해 봐야 할 것 같다. 문자열을 출력해야 하는데 함수를 출력하는 등, 문제가 많았다… ㅠㅠ
'코틀린' 카테고리의 다른 글
코틀린 공부 이야기 - 3주차 (0) | 2024.02.26 |
---|---|
코틀린 공부 이야기 - 2주차 (1) | 2024.02.26 |