`The rubyist'【えぬ】の日記

 | 

2012-03-09

三項演算子(a ? b : c)の結果はPerlだと左辺値だが… 三項演算子(a ? b : c)の結果はPerlだと左辺値だが… - `The rubyist'【えぬ】の日記 を含むブックマーク はてなブックマーク - 三項演算子(a ? b : c)の結果はPerlだと左辺値だが… - `The rubyist'【えぬ】の日記

もちろん(えっ)Rubyでは左辺値ではありません。

(Perl 5.14.2)
% perl -e '$a=1;$b=2;$c=3;($c ? $a : $b) = 1010; print "$a,$b,$c\n"'
1010,2,3

% perl -e '$a=1;$b=2;$c=0;($c ? $a : $b) = 1010; print "$a,$b,$c\n"'
1,1010,0
(Ruby 1.9.3)
% ruby -e 'a=1;b=2;c=0;(c ? a : b) = 1010; p [a,b,c]'
ruby 1.9.3p0 (2011-10-30 revision 33570) [i486-linux]
-e:1: syntax error, unexpected '=', expecting $end
a=1;b=2;c=0;(c ? a : b) = 1010; p [a,b,c]
                         ^

今からでも遅くないので2.0に入れませんか?w

yyamasakyyamasak2012/03/10 00:05(c ? a : b)が返すのはFixnumオブジェクトなので、2=1010って意味わかんないんですけど、というのがRuby的な考えだと思います。

 |