compareTo
메서드를 호출함.equlas
메서드를 호출함.val a = 10
val b = 100
println(a > b) // a.compareTo(b) > 0 false
println(a < b) // a.compareTo(b) < 0 true
println(a >= b) // a.compareTo(b) >= 0 false
println(a <= b) // a.compareTo(b) <= 0 true
compareTo() 메서드는 수신객체로 들어온 값과 파라미터로 들어온 값을 비교한다.
값이 같으면 0, 수신객체 값이 작으면 음수 -1, 크면 양수 1를 반환한다.
val a: Int? = 10
val b: Int? = 100
print(a == b) // a?.eqauls(b) ?: (b === null) false
print(a != b) // !(a?.eqauls(b)) ?: (b === null) true
equals() 메서드도 수신객체로 들어온 값과 파라미터로 들어온 값을 비교한다.
값(value)이 같다면 true 그렇지 않다면 false를 반환함.
수신객체의 값이 null일 경우, 파라미터로 들어온 값도 널을 참조하여 검사 후, Boolean을 반환함.
null을 명식적(==)으로 비교할 때, 코드를 최적화하는건 의미가 없다.
== null은 === null로 자동 변환됨.
contains
메서드를 호출함val a = 10
val b = 0..100
println(a in b) // b.contains(a) true
println(a !in b) // !b.contains(a) false
여러 원소를 가진 배열이나 리스트에 특정 원소 값이 있는지 확인하여 논리값으로 처리하는 메서드.
all
: 조건이 모두 참인 경우none
: 조건이 모두 거짓인 경우any
: 조건이 하나라도 참인 경우val list = listOf(1, 2, null)
println(list.any({ it == null })) // true
println(list.all({ it == null })) // false
println(list.none({ it == null })) // false