小编rve*_*ezy的帖子

以编程方式将参数传递给 @kwdef 结构

以编程方式将参数传递给 @kwdef 结构

问题

我有这个结构:

Base.@kwdef struct example_struc
    Latitude::Float64  = 9.9        # Latitude (degree)
    Longitude::Float64 = -83.7      # Longitude (degree)
end
Run Code Online (Sandbox Code Playgroud)

example_struc()由于默认值,@kwdef 允许我在不提供所有参数的情况下实例化 an ,例如

julia> a= example_struc(Longitude= 40.0)
julia> a.Latitude
9.93833
julia> a.Longitude
40.0
Run Code Online (Sandbox Code Playgroud)

我想通过传递给example_struc参数的名称及其值以编程方式(从文件中读取的元组)实例化它。

我试过的

什么有效

我可以使用这样的元编程为一个论点做到这一点:

# Named tuple usually read from a file:
params= (Latitude = 43.61, Longitude = 3.877)
params_names= collect(keys(params))
Run Code Online (Sandbox Code Playgroud)
lat= :($(params[1]))
lat_name= :($(params_names[1]))
e= :(example_struc($(lat_name)= $(lat)))
a= eval(e)
Run Code Online (Sandbox Code Playgroud)

e看起来像这样:(example_struc(Latitude=43.61)),并且和a以前完全一样。

什么不起作用

Now in my …

julia

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

朱莉娅:确保使用软件包的开发版本

我正在开发一个也已注册的软件包。因此,我的dev文件夹中有一个版本(“ C:/ Users //。julia / dev”),并且我还安装了最新的注册版本,就好像我没有开发它一样。所以我的问题是,当需要时,如何确定使用开发版本?看来,如果我不删除注册版本,它只会使用该版本而不是dev版本,即使如此,我也将我的dev路径添加到Julia的加载路径中。

julia

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

标签 统计

julia ×2