compareTo 抽象方法

int compareTo(
  1. num other
)
override

比较此对象与other

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

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

对于double,compareTo操作与operator==operator<operator>给出的部分排序不同。例如,IEEE double强制执行0.0 == -0.0,并且所有对NaN的比较操作都返回false。

此函数为doubles强加了一个完整排序。使用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);