-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
A contrived example, but this code absolutely irritates the shit
out of me:
Class F
def a=(b)
@z = b + 1
return @z
end
def a
return @z
end
end
f = F.new
x = f.a = 1
p f.a # Prints 2
p x # Prints 1
That's bizarre. What is going on there? Print statement show
that def a= is called before def a, so can x ever be set to 1?
It's an "optimization". The rvalue of an assignment is the
argument to all lvalues in an assignment statement. i.e.: x = f.a
= 1 is translated into "x = 1 ; f.a = 1". I think that was a very
bad decision, but oh well. Ruby ain't perfect and this, to me at
least, is perfect justification for doing what is right vs. what is
"standard." -sc
Ah. That is silly.
And because it is a counterintuitive construct compared to nearly
every other language on the planet, it is VERY difficult to figure out
for the first time!!!!! Ugh. -sc
- --
Sean Chittenden
[EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
iEYEARECAAYFAkitx6IACgkQTrydwWwuXhbJ/ACeLd18kCsGW2aPx8JXVVKLoTn2
IIoAoI4rTXZ5jYtcrSk76OifSgcKK/DV
=82es
-----END PGP SIGNATURE-----
_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel