2017-04-21 1 views
5

Symbol 또는 String을 사용하여 복합 유형 필드의 값을 변경하려면 어떻게해야합니까?Julia에서 Symbol 또는 String을 사용하여 복합 유형의 값을 변경하십시오.

예 : 나는 MyType,

type MyType 
    x 
end 
mt=MyType(0) 

이 있다면 내가 mt.x=1하여 값을 변경할 수 있습니다 알고 있습니다.

그러나 변수 changed_fieldname = :x 또는 changed_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)