[chuck-users] Static attributes and instantiation

Gonzalo gonzalo at dense13.com
Thu Oct 23 06:58:27 EDT 2014


I like the new programming paradigm perspective! Lovingly embracing 
Chuck-isms... :)

On 23/10/2014 6:01 pm, Spencer Salazar wrote:
> Hi Gonzalo,
>
> This is either a misfeature, bug, or exciting new programming paradigm,
> depending on your point of view :)
>
> To explain:
> public class Foo {
>    1 => static int bar;
> }
>
> static int bar; properly declares bar as a static variable. ChucK's
> "pre-constructor" concept executes all of the actual code in the body of
> the class every time the class is instantiated. For some reason this
> includes the 1 => static int bar; which just reduces to 1 => bar; since
> bar already exists.
>
> Truthfully this is a bug that should be changed to only set the value
> once for static vars. In practice I do this:
>
> public class Foo {
>    static int bar;
> }
> 1 => Foo.bar;
>
> which achieves the desired outcome with only minor inconvenience.
>
> spencer
>
>
>
> On Wed, Oct 22, 2014 at 7:56 PM, Gonzalo <gonzalo at dense13.com
> <mailto:gonzalo at dense13.com>> wrote:
>
>     Hi,
>
>     This is weird behavior I think:
>
>     --------------------
>     public class Foo {
>        1 => static int bar;
>     }
>
>     <<< Foo.bar >>>; // prints 0! Why?
>
>     Foo f;
>     <<< Foo.bar >>>;  // prints 1, ok
>
>     2 => Foo.bar;
>     <<< Foo.bar >>>;  // prints 2, ok
>
>     Foo f2;
>     <<< Foo.bar >>>; // prints 1 again!
>     --------------------
>
>     So it seems that static members get initialized only on
>     instantiation, but to make it funky, on every instantiation...
>
>     Is this a buggy implementation of static members, or am I missing
>     something? Not complaining, just a question. :)
>
>     Thanks!
>     Gonzalo
>     _________________________________________________
>     chuck-users mailing list
>     chuck-users at lists.cs.__princeton.edu
>     <mailto:chuck-users at lists.cs.princeton.edu>
>     https://lists.cs.princeton.__edu/mailman/listinfo/chuck-__users
>     <https://lists.cs.princeton.edu/mailman/listinfo/chuck-users>
>
>
>
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>


More information about the chuck-users mailing list