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