Kotlin - 2. Basic

2021/10/06
language

JAVA와 비교한 코틀린의 특징

더 적은 타이핑

자바에서 작성하던 아래의 항목들을 생략 할 수 있습니다.

  1. 세미콜론
  2. 변수의 타입 - 컴파일 타임에 체크
  3. 클래스, 함수 생략 가능
  4. 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
2
3
4
5
6
val num = try {
Thread.sleep(1000)
10 // return 생략합니다.
} catch (e: InterruptException) {
0 // return 생략합니다.
}

출처

  • 다재다능 코틀린 프로그래밍