比较在 Kotlin 文档泛型示例中没有返回



我正在阅读 kotlin 文档:https://kotlinlang.org/docs/reference/generics.html

在页面中间有一个"in"的例子:

interface Comparable<in T> {
operator fun compareTo(other: T): Int
}
fun demo(x: Comparable<Number>) {
x.compareTo(1.0) // 1.0 has type Double, which is a subtype of Number
// Thus, we can assign x to a variable of type Comparable<Double>
val y: Comparable<Double> = x // OK!
}

"x.compareTo(1.0("这一行有什么作用?为什么没有返回值?还是省略了什么?

compareTo调用的Int返回值只是未使用——在现实生活中的代码库中,这很可能是一个无用的调用(除非调用者依赖于compareTo实现的副作用,不鼓励有任何

(。在 docs 示例中,调用仅用于表明,具有Comparable<Number>,您仍然可以在Double上调用其compareTo(这绝对是Number的子类型(。

通常,在与零的比较中使用返回值compareTo,以检查操作数是否与结果和零处于相同的排序关系中:

// checks whether x is greater than 1.0
if (x.compareTo(1.0) > 0) {
/* ... */
}

此外,Kotlin 中的运算符约定允许在Comparable<T>上使用比较运算符,例如x > 1.0,将它们转换为等效的compareTo调用,结果与零相比。

最新更新