본문 바로가기

코틀린

코틀린 공부 이야기 - 4주차

일급함수 (First-Class Function): 함수를 값(객체)처럼 다룰 수 있음

일급함수 특징

  1. 객체로 취급 가능
  2. 다른 함수의 인자로 넘길 수 있음
  3. 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