目录比较在 Dart 中不起作用?
Directory comparison not working in Dart?
为什么目录比较在 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
}
当我阅读 Directory 对象的文档时,hashCode
和 operator==
方法只是从 Object 继承而来,因此没有特殊的实现会导致两个不同的 Directory 对象比较相等如果他们指向同一个地方。
这将很难实施。 hashCode 是否应该规范化相对路径和包含“.”的路径?和 ”..”?它应该遵循符号链接吗?具有多个硬链接的文件呢?
为什么目录比较在 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
}
当我阅读 Directory 对象的文档时,hashCode
和 operator==
方法只是从 Object 继承而来,因此没有特殊的实现会导致两个不同的 Directory 对象比较相等如果他们指向同一个地方。
这将很难实施。 hashCode 是否应该规范化相对路径和包含“.”的路径?和 ”..”?它应该遵循符号链接吗?具有多个硬链接的文件呢?