Instead of a length-one array you can use `Ref` to hold a reference to an object.
If you have multiple variables, then using a dictionary to hold the values with either strings or symbols as keys might be the easiest approach. -erik On Sun, Mar 27, 2016 at 1:13 PM, Fabian Gans <[email protected]> wrote: > However, be aware that this only works in global scope: > > function f() > z=2.0 > change_variable(:z) > println(z) > end > f() > > will print 2. If this is a problem, you might wrap your variable in an array > of size 1. > > x=[2.0] > change_variable(x)=x[1]=3 > > > > On Saturday, March 26, 2016 at 6:26:13 PM UTC+1, Lewis Lehe wrote: >> >> Hey Stefan, >> I figured it out. I had to do something along these lines: >> >> x = 2.0 >> function change_variable(z) >> eval(:($z = 3.0)) >> end >> change_variable(:x) >> >> >> >> >> >> On Friday, March 25, 2016 at 12:00:50 PM UTC-7, Stefan Karpinski wrote: >>> >>> You may want to check out Interact.jl: >>> https://github.com/JuliaLang/Interact.jl >>> >>> On Fri, Mar 25, 2016 at 1:59 PM, Lewis Lehe <[email protected]> wrote: >>>> >>>> Err that is >>>> >>>> slider[:on_changed]( >>>> #WHERE I WANT THE MACRO TO GO >>>> variable = slider.val >>>> ) >>>> >>>> >>>> >>>> On Friday, March 25, 2016 at 10:57:34 AM UTC-7, Lewis Lehe wrote: >>>>> >>>>> Hi, >>>>> I am learning about metaprogramming and macros. I have a very basic >>>>> case but am unsure about what Julia is capable of. last time I asked a >>>>> question here I got a very helpful answer shortly. >>>>> >>>>> I am making sliders for a matplotlib plot. I would that when a slider >>>>> changes, it changes some the value of some variable. Here is an example. >>>>> >>>>> frequency = 2.0 >>>>> function makeSlider(axSlider, variable): >>>>> slider = widget.Slider(axSlider; valinit=variable) >>>>> slider.on_changed( >>>>> #WHERE I WANT THE MACRO TO GO >>>>> variable = slider.val >>>>> ) >>>>> slider >>>>> end >>>>> freqSlider = makeSlider(axFrequency,frequency) >>>>> >>>>> >>>>> Is this possible? I did not see any use cases like this in the >>>>> documentation. >>>>> >>>>> I would normally do it by keeping all my constants as properties of >>>>> some World type (or in some world Dictionary) and passing the key to the >>>>> function, but I wanted to learn how to use this part of Julia. >>>>> >>>>> Thanks! >>> >>> > -- Erik Schnetter <[email protected]> http://www.perimeterinstitute.ca/personal/eschnetter/
