要创建一个具有双重成员的 Kotlin 数据类,您可以遵循以下步骤:
Person
的数据类,并具有姓名和年龄属性。data class Person(val name: String, val age: Int)
Comparator
对象,用于比较两个Person
对象。您可以使用compareBy
函数和thenBy
函数来实现多个条件的比较。在这个示例中,我们首先按照姓名进行比较,然后按照年龄进行比较。val personComparator = compareBy { it.name }.thenBy { it.age }
Person
对象进行比较。val person1 = Person("Alice", 25)
val person2 = Person("Bob", 30)
personComparator
来比较两个Person
对象。您可以使用compare
函数将两个对象传递给personComparator
。val result = personComparator.compare(person1, person2)
result
为负数,则person1
小于person2
;如果result
为正数,则person1
大于person2
;如果result
为零,则person1
等于person2
。if (result < 0) {
println("${person1.name} 小于 ${person2.name}")
} else if (result > 0) {
println("${person1.name} 大于 ${person2.name}")
} else {
println("${person1.name} 等于 ${person2.name}")
}
完整的示例代码如下所示:
data class Person(val name: String, val age: Int)
val personComparator = compareBy { it.name }.thenBy { it.age }
fun main() {
val person1 = Person("Alice", 25)
val person2 = Person("Bob", 30)
val result = personComparator.compare(person1, person2)
if (result < 0) {
println("${person1.name} 小于 ${person2.name}")
} else if (result > 0) {
println("${person1.name} 大于 ${person2.name}")
} else {
println("${person1.name} 等于 ${person2.name}")
}
}
输出结果将根据比较结果显示不同的消息。在这个示例中,输出将是Alice 小于 Bob
。