Šim*_*lík 2 metaprogramming julia
我想基于参数来评估导入模块的表达式expr.到目前为止,我想出了:
julia> expr = :(Base.Threads)
julia> @eval using $expr
ERROR: TypeError: import or using: expected Symbol, got Expr
Stacktrace:
[1] eval(::Module, ::Expr) at ./sysimg.jl:23
Run Code Online (Sandbox Code Playgroud)
一种可能性是Expr直接使用构造函数,如下所示:
julia> expr = [:Base, :Threads]
2-element Array{Symbol,1}:
:Base
:Threads
julia> eval(Expr(:using, expr...))
Run Code Online (Sandbox Code Playgroud)
但是有没有其他的,也许更直接的方式,而不需要构建Expr?
宏名称之后的每个空格分隔的字符组被视为单独的参数.相反,你应该在paranthesis之间编写表达式.
@eval(using $expr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |