未捕获的无效参数:节点'的实例

时间:2016-02-01 15:48:32

标签: dart

使用sort函数时,我创建的已实现节点似乎会导致一些问题。

我已将其跟踪到MergeSort的Merge函数中节点的比较。话虽如此,有问题的代码行是:

if (_tmpArray[i] <= _tmpArray[j])

_tmpArray在构造函数中定义,但在合并中给出了内容值

operator ==operator <operator <=的节点实施如下。

bool operator ==( Node<T> other) => identical(this, other);
bool operator <( Node<T> other){
  //other is of same type, T.
  if (_value.compareTo(other) == -1){
    return true;
  }
  return false;

}
bool operator <= ( Node<T> other){
  return (this == other) || (this < other);
}

似乎我的实施可能是错误的。我正在使用大小为400的List进行主测试,T = int。

附件是我的Dartpad文件:https://dartpad.dartlang.org/612422345f1ac8a27f8e

似乎_value.compareTo的比较不正确,因为TintT的情况下没有compareTo。将int转换为&#34; String&#34;虽然compareTo具有可比性,但它仍然显示相同的错误。

1 个答案:

答案 0 :(得分:1)

//other is of same type, T.
if (_value.compareTo(other._value) == -1){
//                        ^^^^^^^ was missing
  return true;
}
return false;