단항 연산자 / 산술 연산자
//단항 연산자
i++ i--
// 산술 연산자
+, - , *, /, %
// 산술 대입 연산자
+=, -=, *=, /=, %=
비교 연산자와 동등성, 동일성
/비교 연산자
>, <, <=, >=
- 마찬가지로 자바와 동일하지만, 객체를 비교할 때 비교 연산자를 사용하면 자동으로 compareTo를 호출해줌
//java
Money money1 = new Money(100);
Money money2 = money1;
money1 == money2 // true
//kotlin
val money1 : Money = Money(100);
val money2 : Money = money1;
money1 === money2
- 두 객체가 같은 레퍼런스인지(메모리 주소가 같은지)를 판단할 때 java는 == kotlin은 ===을 사용함
//java
Money money1 = new Money(100);
Money money2 = new Money(100);
money1.equals(money2) // true
//kotlin
val money1 : Money = Money(100);
val money2 : Money = new Money(100);
money1 == money2
- 두 객체가 같은 값을 가지는지(동일한지)를 판단할 때 java는 equals 함수를 직접 호출해야 하고 kotlin은 ==를 사용하면 자동으로 equals를 호출해준다.
논리 연산자 / 코틀린에 있는 특이한 연산자
// 논리 연산자
&&, ||, !
fun fun1() : Boolean {
return true
}
fun fun2() : Boolean {
return false
}
if (fun1() || fun2(){} //fun1()까지만 수행, Lazy 연산
- java와 완전히 동일하며, java처럼 Lazy연산을 수행함
//코틀린 연산자
in / !in
- 컬렉션이나 범위에 포함되어 있다, 포함되어 있지 않다
println(1 in numbers)
a..b
- a부터 b 까지의 범위 객체를 생성한다
- <코틀린에서 반복문을 다루는 방법> 강의에서 다룸
a[i]
- a에서 특정 Index i로 값을 가져온다
val str = "ABC"
println(str[2]) //C
a[i] = b
- a의 특정 index i에 b를 넣는다
연산자 오버로딩
val money1 = Money(100);
val money2 = Money(200);
operator fun plus(other : Money): Money {
return Money(this.amount + other.amount)
}
println(money1 + money2); // Money(amount=3000)