Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
目录比较在Dart中不起作用?_Dart_Dart Io - Fatal编程技术网

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

目录比较在Dart中不起作用?,dart,dart-io,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 } 当我阅读目录对象的文档时,hashCode和operator==

为什么目录比较在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
}

当我阅读目录对象的文档时,
hashCode
operator==
方法只是从该对象继承的,因此没有特殊的实现,如果两个不同的目录对象指向同一个位置,则会导致两个不同的目录对象进行相等的比较


这将很难实施。哈希代码是否应该规范化相对路径和包含“.”和“.”的路径?它应该遵循符号链接吗?那么有多个硬链接的文件呢?

所以唯一的比较方法是使用相对/绝对路径,但开发人员必须确保他只使用一种类型?我习惯于在Python中正确地使用这种类型,所以我很惊讶Dart中没有实现。我的意思是,如果您需要“相同目录”的概念,也许你应该重新考虑你的设计,也许你是对的。我试图将目录列表重写为嵌套的映射,然后将其转换为嵌套的颤振列表视图。但我认为Dart中没有像Python中那样递归地使用Map.addRecursive和Map.foreachRecursive,因此我需要找到一种不同的方法。