[Xotcl] Problem with initialisation
Gustaf Neumann
neumann at wu-wien.ac.at
Sun Nov 13 11:32:21 CET 2005
Kristoffer,
the arguments to the constructor are preceding in the call the values
passed to
configure. All the arguments of the call not strting with a dash are taken
as arguments for init. So in:
Class C
C c1 ene mene moo -f 1 2 3 -g drausst bist du
the arguments "ene mene moo" are passed to init, "1 2 3" to f,
and "drausst bist du" to g.
the position of the arguments to init are not arbitrary.
the argument parses does not try to check the signatures of
the functions to be called to determine the number of arguments.
This won't be cheap, the handling of "args" and
default values makes it unclear what to pass as argument...
-gustaf
Kristoffer Lawson schrieb:
> This is with XOTcl 1.3.6, but I couldn't find if 1.3.8 fixes it. The
> following code does not appear to work as expected:
>
> package require XOTcl
> namespace import xotcl::*
>
>
> Class A
>
> A instproc init {test} {
> puts "init: $test"
> }
>
> A instproc foo {text} {
> puts "foo: $text"
> }
>
> A instproc bar {text} {
> puts "bar: $text"
> }
>
> A new "on taas" -foo jou -bar blah
> A new -foo jou -bar blah "on taas"
>
> The first will work, but the latter will not. The error is:
>
> wrong # args: should be "bar text"
> ::xotcl::__#1 ::A->bar
> ::xotcl::__#1 ::xotcl::Object->configure
> ::A ::xotcl::Class->create
> ::A ::xotcl::Class->new
> invoked from within
> "A new -foo jou -bar blah "on taas""
> (file "dashCreateTest.tcl" line 23)
>
> / http://www.fishpool.com/~setok/
>
> _______________________________________________
> Xotcl mailing list
> Xotcl at alice.wu-wien.ac.at
> http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
More information about the Xotcl
mailing list