BackEnd/Java&Kotilin
[Kotilin] 변수와 함수 선언방법
Hero_O
2022. 8. 16. 00:37
변수
변수 선언 키워드
val (value)
- 읽기 전용(readOnly)로 자바의 final 키워드가 붙은 변수
- 자바스크립트의 const 와 비교해 생각하면 쉽다.
- val은 value( 값 ) 라는 의미를 가진다.
var (variable)
- 가변, 즉 변경 가능한 변수를 의미한다.
- 값을 변경하는 것은 가능 하지만, 동적타입 언어(ex. JavaScript, Python )처럼 한 번 초기화된 타입이 아닌 타입으로 변경하는 것은 불가능하다.
- 자바스크립트의 let 과 비교해 생각하면 쉽다.
- var는 variable( 변수 ) 라는 의미를 가진다.
자바와 다른 특징
- Top-Level( 함수 혹은 클래스 밖 ) 에서 선언 가능.
- Type을 지정 하지 않아도 타입 추론이 된다. ( JDK 10 에서 추가된 var를 이용하면 자바에서도 가능 )
- 지연 할당이 가능하다. 즉, 초기화 하지 않은 상태로 변수 선언이 가능하다. 하지만 사용 전에는 초기화 해주지 않으면 컴파일 에러가 발생한다.
함수
코틀린의 다양한 함수 선언 방법
1. 몸통이 있는 함수 선언
- fun 키워드를 사용한 몸통이 있는 함수.
- fun [함수명](Argument:Type...):[Type] {...} 의 형태를 가진다.
2. 표현식을 사용한 함수 선언
- 반환 타입의 타입 추론이 가능하다. (몸통이 있는 함수는 타입추론이 불가능)
특징
반환 타입이 없는 경우 Unit Type이 반환된다. ( 자바의 Void 타입으로 이해할 수 있다. )
디폴트 파라미터 (default parameter)를 제공할 수 있다.
- 파라미터의 기본 값을 설정할 수 있다.
네임드 아규먼트 (Named Argument) 사용
- 기존 자바에서는, 파라미터의 순서가 중요했다. 코틀린의 경우 이러한 파라미터 이름을 직접 지정하여 순서와 상관 없이 사용할 수 있도록 하여 가독성을 높였다.
Top-Level에 선언 가능
- 기존 자바의 메서드는 항상 클래스 내부에 위치 해야했다. 이와달리 코틀린은 클래스 밖에 (Top-Level)에 함수가 위치할 수 있다.
함수 명에 띄어쓰기 혹은 예약어 사용 가능
- 벡틱(`) 을 활용하면 함수명에 띄어쓰기 혹은 예약어를 포함할 수 있는데, 테스트 코드의 함수명으로 사용하면 가독성을 높일 수 있다.