print({[1,2]:3}[[1,2]])
打印null
.这显然是出乎意料的.
是否有一个幸福的解决方法还是我必须建立一个新的列表类级/包装,并给它一个适当的operator==
和hashCode
?
Dart中的列表不具有基于其元素的相等性.
您可以使用Map
具有自定义相等功能的a.在定义的列表上有相同的package:collection/equality.dart
,所以你可以这样做:
import "package:collection/equality.dart";
main() {
const eq = const ListEquality();
var map = new Map(equals: eq.equals, hashCode: eq.hash, isValidKey: eq.isValidKey);
map[[1,2]] = 42;
print(map[[1,2]]);
}
Run Code Online (Sandbox Code Playgroud)
但是,这仍然不允许您使用地图文字.
归档时间: |
|
查看次数: |
203 次 |
最近记录: |