haxe 元值中的奇怪引号?
Strange quotes in meta values in haxe?
我有这个简单的代码可以从 class:
中提取元值
package;
@:rtti
class TestClass
{
@testMeta("test_val_0", "test_val_1")
var testVar = 0;
}
class Main
{
static function main()
{
trace(haxe.rtti.Meta.getFields(TestClass).testVar.testMeta[0]);
for( field in haxe.rtti.Rtti.getRtti(TestClass).fields )
if( field.name == "testVar" )
for( meta in field.meta )
if( meta.name == "testMeta" )
trace(meta.params[0]);
}
}
当我编译并 运行 它时,我得到了这个奇怪的结果:
c:\test_meta>haxe -main Main -neko test.n & neko test.n
Main.hx:14: test_val_0
Main.hx:19: "test_val_0"
这个结果是否正常,或者我做错了什么?
据我所知,你没有做错任何事,这绝对是一个奇怪的差异。
我刚刚用 Haxe 的最新开发分支对此进行了测试,那里的行为是相同的。我会在 Haxe's issue tracker 上创建一个问题,让 Haxe 团队知道这个潜在的错误。
我有这个简单的代码可以从 class:
中提取元值package;
@:rtti
class TestClass
{
@testMeta("test_val_0", "test_val_1")
var testVar = 0;
}
class Main
{
static function main()
{
trace(haxe.rtti.Meta.getFields(TestClass).testVar.testMeta[0]);
for( field in haxe.rtti.Rtti.getRtti(TestClass).fields )
if( field.name == "testVar" )
for( meta in field.meta )
if( meta.name == "testMeta" )
trace(meta.params[0]);
}
}
当我编译并 运行 它时,我得到了这个奇怪的结果:
c:\test_meta>haxe -main Main -neko test.n & neko test.n
Main.hx:14: test_val_0
Main.hx:19: "test_val_0"
这个结果是否正常,或者我做错了什么?
据我所知,你没有做错任何事,这绝对是一个奇怪的差异。
我刚刚用 Haxe 的最新开发分支对此进行了测试,那里的行为是相同的。我会在 Haxe's issue tracker 上创建一个问题,让 Haxe 团队知道这个潜在的错误。