あおきです。 In mail "[ruby-list:19847] Re: ++ -- " IWAOKA Masahiro <iwaoka / tuat.jac-net.com> wrote: > いわおかです。 > > ++と--(結果は同じです)の動作ってどうなるん > > でしょうか?。 > > 定義されていないと思います。a += 1、a -= 1 を使うのが標準のはず。 です。Ruby には ++ も -- もないです。ない理由は、 ++ はオブジェクトでなく変数(ポインタ)を変化させる演算子で、 かつ整数オブジェクトは変化できないからです。 後の例は、わかりやすくかっこをつけると以下のようになります。 ( obj.+( arg ) のような書き方はないですがイメージとして。) > irb(main):002:0> ++a > 1 +(+a) > irb(main):003:0> ++1 > 1 +(+1) > irb(main):004:0> 1 ++ a > 2 1.+(+a) > irb(main):005:0> a ++ 1 > NameError: undefined method `a' for #<Object:0x80f2ecc> > (irb):5:in `irb_binding' a( +(+1) ) > irb(main):006:0> a++1 > 2 a.+( +1 ) > irb(main):007:0> a--1 > 2 a.-( -1 ) > irb(main):008:0> a -- 1 > NameError: undefined method `a' for #<Object:0x80f2ecc> > (irb):8:in `irb_binding a( -(-1) ) # こうなる理由は parse.y に書いてあります ^^;; ------------------------------------------------------------------- あおきみねろう