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 1That'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. Charlie
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ libxml-devel mailing list libxml-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/libxml-devel