JAVA와 비교한 코틀린의 특징
더 적은 타이핑
자바에서 작성하던 아래의 항목들을 생략 할 수 있습니다.
- 세미콜론
- 변수의 타입 - 컴파일 타임에 체크
- 클래스, 함수 생략 가능
- try/catch -> checked exception 에 대해 try/catch를 강제하지 않음
컴파일 타임의 경고
컴파일 과정에서 약간의 정적분석을 통해 자잘한 문제를 찾아 warning 으로 표시합니다.
컴파일 시 -Werror 플래그를 추가하면 에러로 처리 되어 더 엄격하게 코드를 관리 할 수 있습니다.
var 보다는 val
코틀린에서 변수를 선언할 때, var / val 를 사용하여 선언합니다.
- val는 final 처럼 변수를 변경 할 수 없습니다.
- var는 변수를 변경 할 수 있습니다.
val 은 중간에 값의 변경이 불가능하기 때문에, 코드의 결과를 추론하기 용이합니다.
동일성 체크
Java의 ==
는 kotlin 의 ===
로 대응되고
Java의 equals
는 kotlin의 ==
와 대응됩니다.
kotlin의 ==는 nullsafe 하기 때문에 null값이 들어오는 상황에 NPE를 예방할 수 있습니다.
문자열 템플릿
자바의 문자열은 중간에 특정 변수의 값을 담기 위해 + (concat)을 사용해야 하지만 코틀린의 경우 문자열 템플릿을 통해 귀찮은 + 대신 $변수명
을 통해 변수를 포함시킬 수 있습니다.
raw 문자열
큰 따옴표 세개를 이용하여 raw 문자열을 만들 수 있습니다.
raw 문자열에서는 별도의 이스케이프가 필요없으며, 여러줄의 문장을 사용할 수 있습니다.
내부의 들여쓰기는 trimMargin 이나 trimIndent으로 제거 할 수 있습니다.
표현식
여러 문법들을 표현식의 형태로 작성하여 코드를 간략화 할 수 있습니다.
Java 에서 삼항 연산자를 대신하여 if 문으로 표현 할 수 있습니다.
1 | val num = if (state) 10 else 0 |
try/catch 역시 표현식으로도 작성가능합니다.
1 | val num = try { |
출처
- 다재다능 코틀린 프로그래밍