Skip to Content
Kotlin📘 Ngôn ngữ KotlinToán tử quan hệ/so sánh

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ằng

2. 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) // true

4. 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>b

6. 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ánh
  • in - Kiểm tra trong range
  • compareTo() - So sánh trả về Int
Last updated on