如何使用Symbol
或String
更改复合类型字段的值?
示例:如果我有MyType
,
type MyType
x
end
mt=MyType(0)
我知道我可以按mt.x=1
更改价值。
但是,如何使用变量changed_fieldname = :x
或changed_fieldname = x
执行相同的操作?
我不想直接将字段名称写为mt.x=1
。
答案 0 :(得分:6)
使用setfield!
:
julia> mt=MyType(0)
MyType(0)
julia> changed_fieldname = :x
setfield!(mt, changed_fieldname, 1)
1
julia> mt
MyType(1)