이 블로그의 모든 예제코드는 깃허브에서도 볼 수 있습니다. https://github.com/AeroCodeX/
연산자 변환 |
코틀린의 연산자는 바이트 코드로 변환될 때, 내부적인 메소드로 변환된다.
- 이항 산술 연산자
Expression | Translated to |
---|---|
a + b | a.plus(b) |
a - b | a.minus(b) |
a * b | a.times(b) |
a / b | a.div(b) |
a % b | a.rem(b) , a.mod(b) (deprecated) |
a..b | a.rangeTo(b) |
단항 연산자
Expression | Translated to |
---|---|
+a | a.unaryPlus() |
-a | a.unaryMinus() |
!a | a.not() |
Expression | Translated to |
---|---|
a++ | a.inc() + see below |
a-- | a.dec() + see below |
복합대입 연산자
Expression | Translated to |
---|---|
a += b | a.plusAssign(b) |
a -= b | a.minusAssign(b) |
a *= b | a.timesAssign(b) |
a /= b | a.divAssign(b) |
a %= b | a.remAssign(b) , a.modAssign(b) (deprecated) |
동등관계 연산자
Expression | Translated to |
---|---|
a == b | a?.equals(b) ?: (b === null) |
a != b | !(a?.equals(b) ?: (b === null)) |
Note: ===
and !==
(identity checks) are not overloadable, so no conventions exist for them.
=== 연산자나 !== 연산자는 오버로딩 할 수 없다.
Expression | Translated to |
---|---|
a > b | a.compareTo(b) > 0 |
a < b | a.compareTo(b) < 0 |
a >= b | a.compareTo(b) >= 0 |
a <= b | a.compareTo(b) <= 0 |
컬렉션의 in 연산자
Expression | Translated to |
---|---|
a in b | b.contains(a) |
a !in b | !b.contains(a) |
For in
and !in
the procedure is the sam
인덱스 연산자
Expression | Translated to |
---|---|
a[i] | a.get(i) |
a[i, j] | a.get(i, j) |
a[i_1, ..., i_n] | a.get(i_1, ..., i_n) |
a[i] = b | a.set(i, b) |
a[i, j] = b | a.set(i, j, b) |
a[i_1, ..., i_n] = b | a.set(i_1, ..., i_n, b) |
인보크 연산자
Expression | Translated to |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i, j) | a.invoke(i, j) |
a(i_1, ..., i_n) | a.invoke(i_1, ..., i_n) |
클래스의 인스턴스를 함수처럼 사용할 수 있게 해준다.
예제 |
'# 미사용' 카테고리의 다른 글
13. 외부 반복문 제어 (0) | 2018.11.19 |
---|---|
12. 예외처리 (0) | 2018.11.19 |
10. 널 체크 (0) | 2018.11.19 |
09. 상속, 추상 클래스, 인터페이스 (0) | 2018.11.19 |
08. 클래스 (0) | 2018.11.18 |