본문 바로가기
코틀린

코틀린(3) - 타입 추론, 함수

by 왈레 2022. 3. 17.

타입추론

변수나 함수들을 선언할 때나, 연산이 이루어 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능으로 변수가 선언될 할당된 값의 형태로 해당 변수가 어떤 자료형을 가지는지 추론이 가능하기때문에 가능한 것이다.

대부분 선언시 값을 할당만 해준다면 대부분 자료형을 명시할 필요가 없다.

 

자료형 없이 값을 할당한다면 어떤 자료형으로 지정될까?

일반 정수형 리터럴을 할당하면 Int, L 붙은 정수형 리터럴은 Long, 일반 실수형 리터럴은 Double, f 붙은 실수형 리터럴은 Float형으로 추론된다.

추가적으로 16진수 2진수 Int으로 추론된다. Boolean Char역시 자료형 없이도 추론이 가능하다.

 

따라서 반드시 특정한 자료형으로 지정해야하는 상황이 아니라면 대부분은 코틀린의 타입추론 기능을 이용하여 코드량을 줄일 있다.

 

동적타입과 정적타입언어의 차이는 '런타임'중에 변수에 지정된 타입(자료형) 마음대로 변경할 있느냐이다.

코틀린의 타입추론이란 런타임시에 할당되는 값에 따라 변수의 자료형이 맘대로 변경되는 것이 아닌, 어디까지나 코드에 지정된 값의 자료형을 보고 컴파일시에 자료형을 추론하여 실행파일에 고정시키는 기능이다.

따라서 자료형이 추론되어 고정되지 않는 코드는 문법체크 또는 컴파일시 오류가 발생하기 때문에 우려하시는 상황은 일어나지 않는다.

 

함수

1.코틀린에서 함수는 어디에나 있다 (main밑에 둬도 된다)

2.함수이름을 네이밍할때 function 준말인 fun으로 시작한다

3.반환형은 앞이 아닌 뒤에 명시한다.

ex)fun add(a: Int, b: Int) : Int (반환형을 뒤에 둔다)

 

4.함수안에서 return 뒤에오는 값을 반환하는 키워드로 return 발생한다면 함수의 중간이더라도 값을 반환하고 함수를 종료하게 된다. 또한 함수의 종료를 목적으로 return 값을 0으로 수도 있다.(return 가지 목적 1.값의 반환 2.함수의 종료)

 

단일 표현식 함수 (함수를 간단하게 기술할 있도록 도와주는 기능)

단일 표현식 함수에서는 반환형의 타입추론이 가능하므로 반환형을 생략 있다.

 

학습 tip : 코틀린에서 함수는 내부적으로 기능을 가진 형태이지만 외부에서 때는 파라미터를 넣는다는 외에는 자료형이 결정된 변수라는 개념으로 접근하는 것이 좋다.

그래야 이후에 배울 "함수형 언어"라는 코틀린의 중요한 특징을 이해하기 쉽기때문이다.

댓글