目录比较在Dart中不起作用?

时间:2019-07-09 17:15:50

标签: dart dart-io

为什么目录比较在Dart中无法按预期方式进行?

import 'dart:io';

void main() {
  Directory d = Directory('/kek');
  Directory e = Directory('/kek');
  print(d==e);  // false
  print(d.hashCode);  // 123456
  print(e.hashCode);  // 654321
}

1 个答案:

答案 0 :(得分:1)

当我阅读Directory对象的文档时,hashCodeoperator==方法只是从Object继承的,因此没有特殊的实现方式,如果两个不同的Directory对象进行比较,它们将相等指向同一地方。

这将很难实现。 hashCode应该规范化相对路径和包含“。”的路径。和“ ..”?它应该遵循符号链接吗?带有多个硬链接的文件呢?