小编mjy*_*mjy的帖子

如何在Nim中获取程序名称?

我正在尝试用Nim语言编写一个用于调试打印的宏.目前这款宏将filenameline由输出instantiationInfo().

import macros  
macro debugPrint(msg: untyped): typed =
  result = quote do:
    let pos = instantiationInfo()
    echo pos.filename, ":", pos.line, ": ", `msg`

proc hello() =
  debugPrint "foo bar"
hello()
Run Code Online (Sandbox Code Playgroud)

目前输出:

debug_print.nim:9: foo bar
Run Code Online (Sandbox Code Playgroud)

我想添加调用宏的位置的过程(或迭代器)的名称.

期望的输出:

debug_print.nim:9(proc hello): foo bar
Run Code Online (Sandbox Code Playgroud)

如何在Nim中获取过程(或迭代器)的名称,就像__func__在C中一样?

macros nim-lang

5
推荐指数
1
解决办法
448
查看次数

标签 统计

macros ×1

nim-lang ×1