compareTo 抽象方法

int compareTo(
  1. num other
)
override

比较此对象与 other

如果 this 小于 other,则返回负数;如果它们相等,则返回零;如果 this 大于 other,则返回正数。

此方法表示的排序是 num 值的完全排序。所有不同的双精度浮点数都是不等的,所有不同的整数也都是不等的,但如果它们的数值相同,则整数等于双精度浮点数。

对于双精度浮点数,compareTo 操作与 operator==operator<operator> 提供的偏序不同。例如,IEEE 双精度浮点数规定 0.0 == -0.0,并且所有对 NaN 的比较操作都返回 false。

此函数为双精度浮点数施加一个完全排序。当使用 compareTo 时,以下属性成立

  • 所有 NaN 值都被视为相等,并且大于任何数值。
  • -0.0 小于 0.0(以及整数 0),但大于任何非零负值。
  • 负无穷小于所有其他值,正无穷大于所有非 NaN 值。
  • 所有其他值都使用它们的数值进行比较。

示例

print(1.compareTo(2)); // => -1
print(2.compareTo(1)); // => 1
print(1.compareTo(1)); // => 0

// The following comparisons yield different results than the
// corresponding comparison operators.
print((-0.0).compareTo(0.0));  // => -1
print(double.nan.compareTo(double.nan));  // => 0
print(double.infinity.compareTo(double.nan)); // => -1

// -0.0, and NaN comparison operators have rules imposed by the IEEE
// standard.
print(-0.0 == 0.0); // => true
print(double.nan == double.nan);  // => false
print(double.infinity < double.nan);  // => false
print(double.nan < double.infinity);  // => false
print(double.nan == double.infinity);  // => false

实现

int compareTo(num other);