단항연산자, 산술연산자
- Java와 동일한 단항연산자, 산술연산자 제공
- 단항 연산자 :
++
—
- 산술 연산자 :
+
-
*
/
%
- 산술대입 연산자 :
+=
-=
*=
/=
%=
비교 연산자와 동등성, 동일성
- 비교 연산자 :
>
<
>=
<=
==
- 코틀린에서는 객체 비교시 비교연산자를 사용하면 자동으로
compareTo()
를 호출해 준다.compreTo
: 기준값이 비교대상(인자)보다 크면 양수, 같으면 0, 작으면 음수.
동등성(Equality)
: 두 객체의 값이 같은지 여부 - 값비교- kotlin :
==
- java :
equals
- kotlin :
동일성(Identity)
: 두 객체가 같은 객체인지 여부 - 객체비교- kotlin :
===
- java :
==
- kotlin :
/* Kotlin */
val money3 = JavaMoney(1000L)
val money4 = JavaMoney(1000L)
println(money3 == money4) // 값비교(동등성)
println(money3 === money4) // 객체비교(동일성)
/* Java */
JavaMoney money3 = new JavaMoney(1_000L);
JavaMoney money4 = new JavaMoney(1_000L);
System.out.println(money3.equals(money4)); // 값비교(동등성)
System.out.println(money3==money4); // 객체비교(동일성)
논리연산자
- 논리연산자 :
&&
||
!
(Java와 동일) - Lazy 연산 수행 (Java와 동일)
코틀린에 있는 특이한 연산자
in
!in
: 컬렉션이나 범위에 포함되어있다. 포함되어 있지 않다.a..b
: a부터 b까지 범위 객체를 생성a[i]
: a에서 특정 Index i로 값을 가져온다.a[i] = b
: a의 특정 index에 값을 넣는다.
연산자 오버로딩
- 코틀린에서는 객체마다 연산자를 직접 정의할 수 있다.
val kotlinMoney1 = KotlinMoney(1_000L)
val kotlinMoney2 = KotlinMoney(2_000L)
println(kotlinMoney1 + kotlinMoney2)
// 결과 KotlinMoney(amount=3000)
data class KotlinMoney(
val amount:Long
) {
operator fun plus(other: KotlinMoney):KotlinMoney{
return KotlinMoney(this.amount + other.amount)
}
}
Reference
'Program > Kotlin' 카테고리의 다른 글
[Kotlin] 6. 반복문 (for, foreach, while, Progression, Range) (0) | 2022.09.13 |
---|---|
[Kotlin] 5. 조건문(if, switch, when) (0) | 2022.09.13 |
[Kotlin] 3. Type (기본타입, 타입캐스팅, Any, Unit,Nothing, trimIndent) (1) | 2022.09.11 |
[Kotlin] 2. Null 처리 (Safe Call, Elvis 연산자) (0) | 2022.09.09 |
[Kotlin] 1. 변수 (var, val, primitive) (0) | 2022.09.09 |