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
'Dev > Kotlin' 카테고리의 다른 글
[부스트코스] 코틀린 프로그래밍 기본1 (4) (0) | 2023.01.28 |
---|---|
[부스트코스] 코틀린 프로그래밍 기본1 (2) (1) | 2023.01.15 |
[부스트코스] 코틀린 프로그래밍 기본1 (1) (0) | 2023.01.15 |
[부스트코스] Hello, Kotlin! (0) | 2023.01.14 |