Toán tử quan hệ/so sánh trong Kotlin
1. Các toán tử so sánh
val a = 10
val b = 5
println(a == b) // false - Bằng
println(a != b) // true - Khác
println(a > b) // true - Lớn hơn
println(a < b) // false - Nhỏ hơn
println(a >= b) // true - Lớn hơn hoặc bằng
println(a <= b) // false - Nhỏ hơn hoặc bằng2. So sánh String
val str1 = "abc"
val str2 = "def"
println(str1 == str2) // false
println(str1 < str2) // true (so sánh lexicographically)3. Structural vs Referential equality
val a = "Hello"
val b = "Hello"
val c = a
println(a == b) // true - Structural equality (giá trị)
println(a === b) // true - Referential equality (tham chiếu)
println(a === c) // true4. So sánh với null
val name: String? = null
println(name == null) // true
println(name != null) // false
// Safe comparison
if (name != null) {
println(name.length)
}5. compareTo()
val a = 10
val b = 5
println(a.compareTo(b)) // 1 (a > b)
// Trả về: <0 nếu a<b, 0 nếu a==b, >0 nếu a>b6. Range checks với in
val age = 25
if (age in 18..60) {
println("Working age")
}
if (age !in 0..17) {
println("Not a child")
}7. Chaining comparisons
val a = 5
val b = 10
val c = 15
if (a < b && b < c) {
println("a < b < c")
}8. Ví dụ thực tế
fun checkGrade(score: Int): String {
return when {
score >= 90 -> "A"
score >= 80 -> "B"
score >= 70 -> "C"
score >= 50 -> "D"
else -> "F"
}
}
fun isLeapYear(year: Int): Boolean {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
}📝 Tóm tắt
==- Structural equality (giá trị)===- Referential equality (tham chiếu)!=,!==- Not equal>,<,>=,<=- So sánhin- Kiểm tra trong rangecompareTo()- So sánh trả về Int
Last updated on