[chuck-users] Doing something to all members of a class?
Scott Wheeler
wheeler at kde.org
Tue Mar 13 21:49:20 EDT 2007
David Powers wrote:
> 2. Give the class a static array property
>
This is what I first tried in the implementation that I sent, but I
quickly ran into a (documented,
http://wiki.cs.princeton.edu/index.php/ChucK/Bugs/Known) ChucK bug.
Static objects are not properly initialized, which includes arrays. And
unlike other objects, it seems that you can't assign an array to an
Object. (i.e. "new int[20] @=> Object foo;" doesn't work) The only way
I saw to work around this was creating another class as an array handle
and using that by reference. So:
class Foo
{
class ArrayHandle
{
int values[20];
}
static ArrayHandle @ handle;
if(handle == null)
{
new ArrayHandle @=> handle;
}
// ...
}
Then all access to the value array has to be done via
handle.values[...]. But then that was almost as much code as writing
the list. :-)
-Scott
More information about the chuck-users
mailing list