あおきです。

  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 に書いてあります ^^;;
-------------------------------------------------------------------
あおきみねろう