compareTo 抽象方法
- 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);