【发布时间】:2021-12-01 21:49:37
【问题描述】:
macro Estruct(name,arg,type,max=100,min=0,descritpion="")
:(struct $(esc(name))
$((esc(arg)))
$(esc(name))($(esc(arg)))=new(
check($(esc(type)),$(esc(arg)),$(esc(name)),$(esc(max)),$(esc(min)),$(esc(descritpion))))
end)
end
我怎样才能像这样使用这个宏:
@Estruct begin
B
arg1
Float64
200.0
5.0
"this"
end
我不知道如何制作多行宏。我以为我只需要添加开始和结束,但我总是得到:MethodError: no method matching var"@Estruct"(::LineNumberNode, ::Module, ::Expr)
【问题讨论】:
标签: macros julia metaprogramming