본문 바로가기

Dev/Kotlin

[부스트코스] 코틀린 프로그래밍 기본1 (3)

1. 함수의 선언

fun 함수 이름([변수 이름: 자료형, 변수 이름: 자료형..]  ): [반환값의 자료형] {
    표현식...
    [return 반환값]
}
  • 매개변수는 반드시 콜론(:)과 함께 자료형을 명시
  • 반환값이 있다면, 반환값의 자료형도 반드시 명시
  • 반환값이 없다면, 반환값의 자료형을 Unit으로 지정하거나 생략

 

2. 최상위 함수

  • 가장 밖에 있는 fun 값
  • 같은 package에 들어있다면, 따로 import 없이 자기 파일에 함수 선언한 것처럼 사용 가능

 

3. 지역 함수

  • 함수 안에 함수를 정의하는 방법
  • 외부에서는 사용 불가, 함수 내부에서만 사용

 

4. 가변인자

  • 인자의 개수가 변함
  • 함수는 하나만 정의해두고, 여러 개의 인자를 받을 수 있음

 

5. 코틀린: 다중 패러다임 언어

  • 함수형 프로그래밍(FP: Functional Programming)
  • 객체 지향 프로그래밍(OOP: Object-Oriented-Programming)

 

6. 함수형 프로그래밍

  • 코드 간략, 테스트/재사용성 증가
  • 람다식/고차함수를 사용해 구성
  • 순수함수

 

7. 순수함수(Pure Function)

  • 부작용이 없는 함수
    • 동일한 입력 인자에 대해서는 항상 같은 결과 출력/반환
    • 값이 예측 가능해 결정적(Deterministic)
  • 순수함수의 조건
    • 같은 인자에 대해 항상 같은 값 반환
    • 함수 외부의 어떤 상태도 바꾸지 않음
  • 순수함수를 사용하는 이유
    • 입력과 내용을 분리/모듈화 → 재사용성 증가 (여러가지 함수들과 조합해도 부작용X)
    • 특정 상태에 영향을 주지 않으므로 병행 작업 시 안전
    • 함수의 값을 추적/예측할 수 있으므로 테스트/디버깅 등 유리
  • 함수형 프로그래밍에 적용
    • 함수를 매개변수, 인자, 반환값에 적용 (고차함수)
    • 함수를 변수, 데이터구조에 저장
    • 유연성 증가

 

8. 람다식(Lambda Expression)

  • 익명 함수의 형태 중 하나, 이름없이 사용/실행 가능
  • 람다 대수(Lambda Calculus)로부터 유래
{x, y -> x + y}
  • 람다식의 이용
    • 람다식은 고차함수에서 인자로 넘기거나, 결과값으로 반환 등을 할 수 있음

 

9. 일급객체(First Class Citizen)

  • 함수의 인자로 전달 가능
  • 함수의 반환값에 사용 가능
  • 변수에 담을 수 있음
  • 코틀린에서 함수는 1급 객체 (1급 함수라고도 함)

 

10. 고차함수(High-Order Function)

  • 다른 함수를 인자로 사용하거나 함수를 결괏값으로 반환하는 함수
  • 일급 객체, 일급 함수를 서로 주고받을 수 있는 함수

 

11. 함수형 프로그래밍을 사용하는 이유

  • 프로그램을 모듈화해 디버깅/테스트 용이
  • 간략한 표현식으로 생산성 높음
  • 람다식과 고차함수 사용으로 다양한 함수조합 사용 가능

 

 

 

 

 

 

코틀린 프로그래밍 기본 1

부스트코스 무료 강의

www.boostcourse.org