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

oxosxuxt  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(131)

在javascript中,我们可以通过ArrayName[“length”]而不是ArrayName.length来获得数组长度。但是在Dart中不起作用...我想通过字符串来获得对象属性。有没有办法在Dart中不使用Map来完成这个操作?

ws51t4hk

ws51t4hk1#

这在Dart中是不可能的。Dart是一种编译语言,并且基于在例如类中实际使用的方法来进行优化。因此,通过允许通过随机字符串访问字段和方法,将不可能预测实际使用的字段/方法,因此,它需要提供对每个可用字段/方法的访问,这将使编译的应用程序的大小增加很多。
如果直接在Dart VM上运行,可以使用dart:mirrors提供对象上的反射,但这只有在直接使用Dart VM运行源代码时才有可能,因此它可以在源代码上反射。
但是在一个Dart程序被编译之后,编译器将删除源代码中永远不会被使用的部分。

相关问题