gpt4 book ai didi

haxe - 打印 eval(文字)而不是人类可读的打印方式?

转载 作者:行者123 更新时间:2023-12-05 00:45:33 25 4
gpt4 key购买 nike

我看到了 trace()Sys.print()两者都给我人类可读的输出。例如,如果我打印出数组

var a = ["", "1", "", "2", "3"];

我得到打印:
[,1,,2,3]

是否有某种“评估打印”功能可以给我输出,例如:
["", "1", "", "2", "3"]

也就是说,如果我想的话,我可以用来复制/粘贴到代码中的文字(顺便说一句,什么可以给我那个确切的字符串数组)。

最佳答案

一种可能的解决方案可能是使用 haxe.macro.Printer.printExpr() . ExprTools.toString() 是一个为您执行此操作的便利功能。请注意,这需要将数组文字直接传递给宏函数,而不是传递像 a 这样的标识符。 (其值在编译时未知)。

import haxe.macro.Context;
import haxe.macro.Expr;

using haxe.macro.ExprTools;

class Main {
static function main() {
var string:String = printExpression(["", "1", "", "2", "3"]);
trace(string); // source/Main.hx:9: ["", "1", "", "2", "3"]
}

static macro function printExpression(e:Expr):Expr {
return macro $v{e.toString()};
}
}

除此之外,您可能必须实现自己的版本
Std.string() 打印带引号的字符串。

关于haxe - 打印 eval(文字)而不是人类可读的打印方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com