在Haxe中,我试图通过变量访问对象的值.在JavaScript中,您使用[ ]它来访问它,但在Haxe中,这不起作用并返回错误:
字符串应该是Int
{x:Int,name:String}上不允许访问数组
我需要最后一行代码的帮助:
var room = { x: 10, name: 'test' };
trace(room.name); // this works returns 'test'
// how do I reference foo to return 'test' as the above result.
var foo = "name";
var results = room[foo]; // need fixing
Run Code Online (Sandbox Code Playgroud)
你要做的是做反射,在Haxe中这样做的方法是通过ReflectAPI:
var results = Reflect.field(room, "name");
Run Code Online (Sandbox Code Playgroud)
注意:反射通常被认为是不好的做法,因为它将错误从编译移动到运行时并且本质上是类型不安全的.有通常更好的方法来解决问题,但很难在这里推荐一个具体的解决方案,而更多的上下文.