在javascript中,我们可以通过ArrayName["length"]而不是ArrayName.length来获取数组长度。 但它在 Dart 中不起作用...... 我想通过字符串获取对象属性。 有没有办法在不使用 Map 的情况下在 Dart 中做到这一点?
答案 0 :(得分:1)
这在 Dart 中是不可能的。 Dart 是一种编译语言,并根据实际使用的方法进行优化,例如类。因此,通过允许通过随机字符串访问字段和方法,将无法预测实际使用哪些字段/方法,因此它需要提供对每个可用字段/方法的访问,这会大大增加已编译应用程序的大小.
如果您直接在 Dart VM 上运行,则可以使用 dart:mirrors
来提供对对象的反射,但这只有在您直接使用 Dart VM 运行源代码时才有可能,因此它可以反思源头。
但是在编译 Dart 程序之后,编译器会删除源代码中永远不会使用的部分。