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

sho*_*oli 5 julia

如何使用Symbol或更改复合类型字段的值String

示例:如果有MyType,

type MyType
   x
end
mt=MyType(0)
Run Code Online (Sandbox Code Playgroud)

我知道我可以改变价值mt.x=1.

但是,我该怎么办使用变量同样的事情changed_fieldname = :x还是 changed_fieldname = x

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

Mat*_* B. 6

用途setfield!:

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

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

julia> mt
MyType(1)
Run Code Online (Sandbox Code Playgroud)