Nim元编程:配置DSL构建与环境搭建
1. 生成构造函数
配置宏目前能够生成单一类型定义,但该类型定义需要一个构造函数才能使用。构造函数的主要作用是初始化引用对象,所需生成的代码较为简单:
proc newMyAppConfig(): MyAppConfig =
new result
为了更便捷地生成此代码,可使用模板。在 configurator.nim 文件的 config 宏上方添加以下模板:
template constructor(ident: untyped): untyped =
proc `new ident`(): `ident` =
new result
此模板会创建一个名为 newIdent 的新过程,其中 Ident 是传递给模板的 ident 参数。该参数同时也用于创建过程的返回类型。若调用 constructor(MyAppConfig) ,实际上会定义如下过程:
proc newMyAppConfig(): MyAppConfig =
new result
要在 config 宏中使用此模板,可借助 macros
超级会员免费看
订阅专栏 解锁全文
5428

被折叠的 条评论
为什么被折叠?



