2017-04-21 32 views
5

如何使用SymbolString更改複合類型字段的值?在Julia使用'Symbol`或`String`來更改複合類型字段的值

例子:如果我有MyType

type MyType 
    x 
end 
mt=MyType(0) 

我知道我可以通過mt.x=1更改值。

但是,如何使用變量changed_fieldname = :xchanged_fieldname = x做同樣的事情?

我不想直接將該字段的名稱寫爲mt.x=1

回答

6

使用setfield!

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

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

julia> mt 
MyType(1) 
相關問題