Dart Cheat Sheet

判断两个列表是否相等

在 Dart 中,两个列表的相等性并不是简单地通过比较其长度和元素来确定的。默认情况下,当你使用 == 操作符比较两个列表时,Dart 实际上是比较它们是否是同一个对象,也就是说,它们在内存中的地址是否相同。

如果你想要比较两个列表的内容是否相同,你需要逐个比较它们的每个元素。这可以通过使用 List 类的 every 方法来实现。以下是一个例子:

1
2
3
4
5
6
7
8
9
10
void main() {
List<int> list1 = [1, 2, 3];
List<int> list2 = [1, 2, 3];

bool isEqual = list1.length == list2.length && list1.asMap().entries.every((entry) {
return list2[entry.key] == entry.value;
});

print(isEqual); // 输出:true
}

判断一个文件或目录是否是链接

在Dart中使用 dart:io 库中的 FileSystemEntity 类的 isLink 方法来判断一个文件或目录是否是链接。

1
2
3
4
5
6
7
8
9
10
11
12
13
import 'dart:io';

void main() {
var path = '/path/to/your/link';

FileSystemEntity.isLink(path).then((isLink) {
if (isLink) {
print('$path 是一个链接');
} else {
print('$path 不是一个链接');
}
});
}