使用Julia中的“Symbol”或“String”更改复合类型字段的值

时间:2017-04-21 18:14:49

标签: julia

如何使用SymbolString更改复合类型字段的值?

示例:如果我有MyType

type MyType
   x
end
mt=MyType(0)

我知道我可以按mt.x=1更改价值。

但是,如何使用变量changed_fieldname = :xchanged_fieldname = x执行相同的操作?

我不想直接将字段名称写为mt.x=1

1 个答案:

答案 0 :(得分:6)

使用setfield!

julia> mt=MyType(0)
MyType(0)

julia> changed_fieldname = :x
       setfield!(mt, changed_fieldname, 1)
1

julia> mt
MyType(1)