为什么目录比较在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
}
答案 0 :(得分:1)
当我阅读Directory对象的文档时,hashCode
和operator==
方法只是从Object继承的,因此没有特殊的实现方式,如果两个不同的Directory对象进行比较,它们将相等指向同一地方。
这将很难实现。 hashCode应该规范化相对路径和包含“。”的路径。和“ ..”?它应该遵循符号链接吗?带有多个硬链接的文件呢?