【发布时间】:2018-03-15 15:35:58
【问题描述】:
我在 Go 的语法树中四处走动,试图找到对某个特定函数的所有调用,然后获取它的字符串参数(它是一个文件名,应该是字符串文字,而不是任何其他标识符)。我成功了,现在我有ast.BasicLit 节点和Kind == token.STRING,但它的值是Go 代码,而不是它应该具有的字符串的值。
我找到了回答如何进行反向转换的问题 - 从字符串到它所代表的代码:golang: given a string, output an equivalent golang string literal
但我想要相反的东西 - 类似 eval 函数(但仅适用于 Go 字符串文字)。
【问题讨论】:
-
@icza 是的,
strconv.Unquote()似乎完成了这项工作(除了我不希望它触及任何它认为是 HTML 的东西,因为它是文件名写成 go 字符串)。但我检查了“ hello.txt”,它运行良好。您可以发布您的答案,以便我接受。
标签: string go string-literals