在Julia中,使用`Symbol`或`String`修改复合类型字段的值

5

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

例如:如果我有MyType

type MyType
   x
end
mt=MyType(0)

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

然而,如果使用变量changed_fieldname = :xchanged_fieldname = x,我该怎么做呢?

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

1个回答

6
使用 setfield! 函数:
julia> mt=MyType(0)
MyType(0)

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

julia> mt
MyType(1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接