如何在 Dart 对象中使用括号表示法?

时间:2021-07-29 07:58:44

标签: dart

在javascript中,我们可以通过ArrayName["length"]而不是ArrayName.length来获取数组长度。 但它在 Dart 中不起作用...... 我想通过字符串获取对象属性。 有没有办法在不使用 Map 的情况下在 Dart 中做到这一点?

1 个答案:

答案 0 :(得分:1)

这在 Dart 中是不可能的。 Dart 是一种编译语言,并根据实际使用的方法进行优化,例如类。因此,通过允许通过随机字符串访问字段和方法,将无法预测实际使用哪些字段/方法,因此它需要提供对每个可用字段/方法的访问,这会大大增加已编译应用程序的大小.

如果您直接在 Dart VM 上运行,则可以使用 dart:mirrors 来提供对对象的反射,但这只有在您直接使用 Dart VM 运行源代码时才有可能,因此它可以反思源头。

但是在编译 Dart 程序之后,编译器会删除源代码中永远不会使用的部分。