단항 / 산술 / 대입 연산자
자바와 동일하게 작동
+
, -
, *
, /
, %
, ++
, --
, =
, +=
, -=
등
사용법은 Java와 동일
하지만 객체 비교 시 compareTo() 함수를 자동 호출하여 처리한다는 점이 다르다!
val money1 = JavaMoney(2_000L)
val money2 = JavaMoney(1_000L)
if (money1 > money2) {
println("Money1이 Money2보다 금액이 큽니다.")
}
// JavaMoney 클래스 내부 (Java 코드)
public class JavaMoney implements Comparable<JavaMoney> {
private final long amount;
@Override
public int compareTo(@NotNull JavaMoney o) {
return Long.compare(this.amount, o.amount);
}
}
구분 | 의미 | Kotlin 연산자 |
---|---|---|
동등성 | 값이 같은가? | == → equals() 호출 |
동일성 | 참조(주소)가 같은가? | === |
val isAdult = true
val hasID = false
if (isAdult && hasID) {
println("입장 가능")
}
&&
, ||
, !
: 자바와 동일
Lazy evaluation(단축 평가)도 동일하게 적용됨
연산자 | 설명 |
---|---|
in , !in | 컬렉션, 범위에 값이 포함되는지 확인 |
a..b | a 부터 b 까지 범위 객체 생성 |
a[i] | 인덱스 접근 |
a[i] = b | 인덱스 값 변경 |
val list = listOf(1, 2, 3)
println(2 in list) // true
println(5 !in list) // true
println(1..5) // 1부터 5까지
Kotlin은 연산자를 객체 내부에서 operator
키워드를 통해 직접 정의할 수 있다.
operator fun plus(other: Money): Money {
return Money(this.amount + other.amount)
}
val result = money1 + money2 // plus 연산자 오버로딩 호출됨