问题描述
我一直在使用 go/ast 来解析 go 源代码并将其复制到另一个文件中,作为供应商练习的一部分。我已经处理了大部分事情——函数、类型等——但我正在努力处理使用 iota 的 const 声明。我正在遍历 ast.File.Scope.Objects 中的项目,并使用 Scope.Outer == nil 和它们的 Decl == ast.ValueSpec 复制对象的源,基本上意味着顶级变量和常量。
在类型块中:
const (
a = iota
b
c
d
)
...它们中的每一个都注册为一个单独的对象,这很公平。但是,我正在努力为它们分配值,因为当我遍历它们时,对象也可能会乱序。我可以将这些值视为 ast.Object.Data,但是当它设置为 1
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)