관리 메뉴

hyeals study

코틀린 기초(4)-함수 본문

코틀린

코틀린 기초(4)-함수

hyeals 2020. 2. 1. 15:09

함수: 모든 프로그램을 구성하는 기본 단위임(변수도 마찬가지)

 

[함수 선언- 블록이 본문인 함수]

 

기본적으로 함수의 선언은 fun 키워드로 시작함.

 

함수 정의

위의 코드로 함수의 구조를 살펴보면

  1. fun 키워드로 함수 선언을 시작함
  2. fun 다음에는 함수 이름이 위치함(여기서는 max가 함수이름)
  3. 함수 이름 뒤에는 괄호 안에 파라미터 목록이 위치함(여기서는 a: Int, b: Int) // 콜론(:) 뒤에 위치한 Int는 파라미터의 타입을 나타냄
  4. 닫는 괄호 뒤에 콜론(:)으로 괄호와 반환 타입을 구분함
  5. 그 다음 함수의 반환 타입이 위치함.(여기서는 Int 타입)

위의 코드의 특징 중 하나는 return 값에 if식이 들어간다는 것. 

또한 위 코드에서 함수의 본문은 if식 부분임.

 

이는 자바에서 3항 연산자와 유사함.

*3항 연산자: (a>b) ? a : b

 

[문(statement)과 식(expression)의 차이]

 

* 코틀린에서 if는 문(statement)가 아닌 식(expression)임

 

  • 문(statement): 어떠한 값도 만들어 내지 않음. 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소로 존재함.
  • 식(expression): 값을 만들어 냄. 다른 식의 하위 요소로 연산에 참여할 수 있음.

* 코틀린에서 loop를 제외한 대부분의 제어 구조는 임. ( 자바에서는 제어 구조가 대부분 임)

* 반면 코틀린에서 대입문이 임. ( 자바에서는 대입문이 임.)

 

[좀 더 간결한 함수-식이 본문인 함수]

 

앞서 본 코드를 아래의 코드와 같이 좀 더 간결하게 표현 할 수 있음.

 

함수 정의 2

앞서 본 코드에서 함수의 본문이 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