beautiful! thanks.

On 21 June 2014 20:41, Mauro <[email protected]> wrote:

> Check getfield and this also works:
>
> julia> type A
>        a
>        b
>        end
>
> julia> d = {:b => 3, :a=>5}
> Dict{Any,Any} with 2 entries:
>   :b => 3
>   :a => 5
>
> julia> a = A(-1,-2)
> A(-1,-2)
>
> julia> for (k,v) in d
>        a.(k) = v
>        end
>
> julia> a
> A(5,3)
>
> (You should only use eval in an emergency or when doing meta-programming.)
>
> On Sat, 2014-06-21 at 20:23, [email protected] wrote:
> > hi,
> > I've got a type and I want to be able to update certain fields of the
> type
> > under the restriction that I don't know when I will be changing with
> field
> > - i.e. I want to be able to do someting like the following. take the
> > example type tt with 2 fields, a and b, and a dict "newval" that contains
> > new values for both fields. I want to iterate over newval, and put
> > newval[j] in tt.j. how can I do this? Here's how far I got.
> >
> > type tt
> > a ::Int
> > b ::Int
> > end
> >
> > function update(x::tt,newval::Dict)
> > dnames = collect(keys(newval))
> > for nm in dnames
> > eval(parse("x.$nm = newval[$nm]"))
> > end
> > return x
> > end
> > thanks!
>
>

Reply via email to