* 변수
- val
: 변경 불가능한 참조를 저장하는 변수 (자바의 final 변수)
- var
: 변경 가능한 참조를 저장하는 변수
: 초기 값을 대입하는 경우 타입을 지정하지 않아도 유형 추론을 통해 타입이 컴파일 타임에 지정됨
- Null Safety
: Nullable (?) 로 선언하지 않는 변수들은 기본적으로 Null 값을 가질 수 없음
* Safe Call (안전 호출) 연산자 (?.)
- 변수가 null 이 아니면 해당 객체의 속성 또는 함수를 실행하고 null 이면 null 을 반환
* Elvis 연산자 (?:)
- 객체가 non-null이면 그 객체의 값이 리턴되고, null이라면 ?:의 오른쪽 값을 리턴
- 연산자의 오른쪽은 식이므로 return 이나 throw 도 사용 가능하다
* Not-Null Assertion (단언) 연산자 (!!)
- Nullable 타입 변수를 Non-Nullable 타입으로 강제변환
* Safe Cast (안전 타입 변환) 연산자 (as?)
- 타입 변환이 올바르게 동작하지 않는 경우 ClassCastException 발생시키는 대신 null 을 리턴
* 출력문
- println("Hello, ${name}!")
: 변수를 포함할 수 있음
* public
- 코틀린의 기본 가시성은 public 이다
* Property
- 프로퍼티를 선언하면 기본적으로 get, set 메소드에 의해 동작한다
* 조건문
- 삼항연산자가 없는 대신, if-else / when-else 를 통해 특정 변수 값을 대입할 수 있음
* when (= 자바 switch)
- 집합 비교도 가능하다
when (setOf(c1, c2)) {
setOf(RED, YELLOW) -> ORANGE
}
* 타입 체크 (= 자바 instance of)
- if (e is Animal)
* 반복문
- 수에 대한 Iteration
: 1..10 (1이상 10이하)
- for (i in 100 downTo 1 step2)
* 범위 원소 검사
- fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'
* 비트 연산자
- shl : signed left shift
- shr : signed right shift
- ushr : unsigned right shift
- and : 자바 &
- or : 자바 |
- xor : 자바 ^
* Pair<A, B> 객체 생성
1. Pair<a, b>
2. "a" to "b"
* 레퍼런스 동등 연산자 (===)
- 동일한 레퍼런스인지 확인
* 동등 연산자 (==)
- 속성이 동일한지 확인