在javascript中,我总是感到困扰,人们使用对象作为向量,比如{x: 1, y: 2},而不是使用数组[1,2].数组的访问时间比对象快得多,但按索引访问更容易混淆,尤其是在需要大数组的情况下.我知道dart有固定的数组,但有没有一种方法可以像用另一种语言命名 struct 或元组/记录那样命名数组的偏移量?是否定义枚举/常量?

我想要像这样的东西

List<int> myVector = new List([x,y]);
myVector.x = 5;

有没有等同的或惯用的方法来做这件事呢?

推荐答案

听起来像是上课.

 class MyVector {
   final x;
   final y;
   const MyVector(this.x, this.y);
 }

在运行时,没有更简单、更有效的方法来创建名称索引 struct .为了简单起见,通常可以使用Map,但它没有真正的类那么有效.

一个类应该至少与固定长度的列表一样高效(时间和内存),毕竟它不需要执行索引边界判断.

Dart相关问答推荐

使用arm64v8/DART Docker映像进行编译时不支持DART镜像

为什么 Dart 的编译器认为代码可能为空,而代码保证它不能为空?

你如何在 Polymer 中调度和监听自定义事件?

结合freezed和hive

如何使用我的 dart 包私有而不在 pub dart lang 上显示?

Flutter 如何移动文件

找不到名为split-per-abi的选项

Dart:Streams与 ValueNotifiers

Flutter中不能指定MultiPartFile的内容类型

Flutter 中 ChangeNotifier 的构建器小部件

在字符串中查找字母 (charAt)

Flutter DataTable - 点击行

用 Dart 模式替换静态继承

Dart:将十进制转换为十六进制

错误:default constructor is already defined

何时使用polymer点击或点击?

可以在 Dart 中的抽象类中声明静态方法吗?

Dart 中的多行字符串

dart捕捉clause子句

如何在 Dart 中将日期/时间字符串转换为 DateTime 对象?