hyeals study
코틀린 기초(4)-함수 본문
함수: 모든 프로그램을 구성하는 기본 단위임(변수도 마찬가지)
[함수 선언- 블록이 본문인 함수]
기본적으로 함수의 선언은 fun 키워드로 시작함.
위의 코드로 함수의 구조를 살펴보면
- fun 키워드로 함수 선언을 시작함
- fun 다음에는 함수 이름이 위치함(여기서는 max가 함수이름)
- 함수 이름 뒤에는 괄호 안에 파라미터 목록이 위치함(여기서는 a: Int, b: Int) // 콜론(:) 뒤에 위치한 Int는 파라미터의 타입을 나타냄
- 닫는 괄호 뒤에 콜론(:)으로 괄호와 반환 타입을 구분함
- 그 다음 함수의 반환 타입이 위치함.(여기서는 Int 타입)
위의 코드의 특징 중 하나는 return 값에 if식이 들어간다는 것.
또한 위 코드에서 함수의 본문은 if식 부분임.
이는 자바에서 3항 연산자와 유사함.
*3항 연산자: (a>b) ? a : b
[문(statement)과 식(expression)의 차이]
* 코틀린에서 if는 문(statement)가 아닌 식(expression)임
- 문(statement): 어떠한 값도 만들어 내지 않음. 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소로 존재함.
- 식(expression): 값을 만들어 냄. 다른 식의 하위 요소로 연산에 참여할 수 있음.
* 코틀린에서 loop를 제외한 대부분의 제어 구조는 식임. ( 자바에서는 제어 구조가 대부분 문임)
* 반면 코틀린에서 대입문이 문임. ( 자바에서는 대입문이 식임.)
[좀 더 간결한 함수-식이 본문인 함수]
앞서 본 코드를 아래의 코드와 같이 좀 더 간결하게 표현 할 수 있음.
앞서 본 코드에서 함수의 본문이 if식 하나로만 이루어져 있기 때문에 가능.
중괄호를 없애고, return을 제거한 후 반환 타입 뒤에 등호(=)만 추가해 주면 됨.
* 추가적으로 이 코드에서 반환 타입을 생략할 수 있음.
☞ 코틀린 컴파일러가 함수의 본문을 분석해서 알아서 반환 타입을 정해주기 때문. 이 기능이 타입 추론 기능임.
본 게시물은 "Kotlin IN ACTION"을 참고함.
'코틀린' 카테고리의 다른 글
코틀린 기초(6)- 제어 구조 [enum] (0) | 2020.02.03 |
---|---|
코틀린 기초(5)-클래스 & 프로퍼티 (0) | 2020.02.02 |
코틀린 기초(3)-문자열 템플릿 (0) | 2020.02.01 |
코틀린 기초(2)-변수 (0) | 2020.02.01 |
코틀린 기초 (2) | 2020.01.31 |
Comments