Julia macros:宏观中的@__FILE__ @__LINE__

时间:2017-06-09 08:59:35

标签: macros julia

此代码:

select T2.*
from    TABLE T1
join TABLE T2 ON T1.prop1=T2.prop1
WHERE T1.prop2 = 'c'
GROUP BY id

打印macro FL(message) return @sprintf("%s:%d | %s", @__FILE__, @__LINE__, message) # line 2 end println(@FL("m")) # line 4 。如何打印fl.jl:2 | m

2 个答案:

答案 0 :(得分:5)

以下内容将适用于当前的Julia:

static uint8_t space = 0x20;
static uint8_t BS = 0x08;

if (ui8Char == 0x08)
{
if (i != 0) i--;
tcp_write(pState->pConnectPCB, &BS, 1, 1); 
tcp_write(pState->pConnectPCB, &space, 1, 1); 

以下implementation pull request使这成为可能。不幸的是,在任何正式发布的版本中都不可能。

答案 1 :(得分:3)

虽然可能有更优雅的方法来做到这一点,如果你不希望这会阻止你在其他方面的进展,为什么不把这个行号传递给宏......

macro FL(message, line)
    return @sprintf("%s:%d | %s", @__FILE__, line, message)
end
println(@FL("m", @__LINE__))