[英]Macro matching a single expr after [expr*], path[tt*] and ident[tt*] branches
[英]Error: no method matching iterate(::Expr)
macro superM(arg, argc)
map(foo,argc)
end
@superM test {1,2}
我只想將參數argc
傳遞給 map 函數,但我收到此錯誤: no method matching iterate(::Expr)
argc
是一個表達式,其head
是大括號{}
:
julia> dump(:({1, 2}))
Expr
head: Symbol braces
args: Array{Any}((2,))
1: Int64 1
2: Int64 2
所以你真正想要的是表達式{1,2}
的args
字段
julia> macro superM(arg, argc)
map(identity,argc.args)
end
@superM (macro with 1 method)
julia> @superM test {1,2}
2-element Vector{Int64}:
1
2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.