Function
- Kotlin에서 하나의 기능을 구현한 명령어의 집합
- Java의 Method에 대응되는 것
- 키워드(keyword) - 함수를 선언하기 위해서는 먼저
fun
키워드를 통해 함수를 선언하겠다는 것을 명시
- 함수 이름
- 키워드 뒤 한칸 띄우고 명시
- camelCase 표기법
- 입력값
- 입력받을 값들을 나타냄
- 이 값은 생략 가능
- 여러 값일 경우
,
를 통해서 이어 붙일 수 있음
이름: 타입
형태
- 리턴 타입
- 해당 함수의 결과를 반환할 타입을 나타내는 부분
- 생략 가능
- 생략하면 Unit 타입의 아무것도 반환하지 않는 타입을 가지게 됨
- 리턴 값
- 함수 본문(body)
- { } 블럭 사이에 함수의 본문이 들어올 수 있음
- 함수 본문을 마무리할 때
return
키워드를 사용하여 값을 반환할 수 있음
파라미터 Parameters
- 입력 값을 조금 더 전문적인 용어로 표현한 것
- Pascal 표기법 사용
파라미터 기본 값 Default Arguments
- 파라미터에 입력되지 않은 값에 대해서 기본적으로 함수를 실행할 때 그 값을 할당하여 사용하겠다는 것
- 오버로딩의 메서드는 항상 기본 메서드의 기본 매개 변수 값을 사용
- 각 파라미터의 뒤에
=
를 붙인 뒤 할당할 기본값을 입력
fun read(
b: ByArray,
off: Int = 0,
len: Int = b.size,
) { /*...*/ }
이름 명시 파라미터 Named Arguments
- 함수를 호출할 때 이름을 선언하고 거기에 값을 매핑하는 방식
- 순서에 구애받지 않고 값을 전달할 수 있음
- 함수에 많은 인수가 있고 특히
bool
또는 null
값인 경우 값을 인수와 연결하기 어려운 경우에 유용할 수 있음
- 나열되는 순서를 자유롭게 변경할 수 있음
단일 표현식 Single Expression
- 함수가 복잡한 연산이 아닌 매우 간단한 연산을 하는 경우 매우 짧게 표기하는 방법
// 일반적인 함수
fun main() {
println( add(1, 1, 9) )
}
fun add(a: Int, b: Int, c: Int): Int {
return a + b + c
}
// 단일 표현식 함수
fun add(a: Int, b: Int, c: Int): Int = a + b + c
// 타환형을 타입 추론으로 생략 (int끼리 합은 int)
fun add(a: Int, b: Int, c: Int): a + b + c