Generics Kotlin文档泛型示例中的compareTo无返回

Generics Kotlin文档泛型示例中的compareTo无返回,generics,kotlin,Generics,Kotlin,我在读科特林医生: 在页面的中间有一个示例: 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

我在读科特林医生:

在页面的中间有一个示例:

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.compareTo1.0做什么?为什么没有返回值?或者忽略了什么?

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

在docs示例中,这个调用只是用来表示,如果有一个Comparable,您仍然可以在Double上调用它的compareTo,Double肯定是Number的子类型

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

// checks whether x is greater than 1.0
if (x.compareTo(1.0) > 0) {
    /* ... */
}
此外,Kotlin中的运算符约定允许在可比较的对象上使用比较运算符,例如x>1.0,将它们转换为等效的compareTo调用,结果与零进行比较

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

在docs示例中,这个调用只是用来表示,如果有一个Comparable,您仍然可以在Double上调用它的compareTo,Double肯定是Number的子类型

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

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

此外,Kotlin中的运算符约定允许在可比较的对象上使用比较运算符,例如x>1.0,将它们转换为等效的compareTo调用,结果与零进行比较

它调用x上的compareTo,并使用double作为参数。结果与此无关,因为此代码段的目的是向您展示执行此调用是正确的,并且编译良好。当然,在实际代码中,您通常关心结果,不要忽略它。它在x上调用compareTo,并使用double作为参数。结果与此无关,因为此代码段的目的是向您展示执行此调用是正确的,并且编译良好。当然,在实际代码中,您通常关心结果,不要忽略它。