From: Tanaka Akira Date: 2004-05-24T14:14:32+09:00 Subject: [ruby-dev:23594] Re: Ruby2.0 spec summary around parameters and variables In article <1085323546.944050.8757.nullmailer@picachu.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > |はい。少なくとも左辺と右辺で代入の種類を揃えるべきだと思います。 > |(つまり代入は lhs = rhs または mlhs = mrhs でなくてはならず、 > |lhs = mrhs および mlhs = rhs はエラー。) > > 種類を揃えるんですね。それは納得できる..かなあ。文法的には許 > さざるをえない(メソッドはなにを返すかあらかじめ分からない)の > で、動的にエラーにするんですよね。AssignmentErrorのようなの > を新設する必要があるかしら。 右辺の値が多いときには単に無視してくれると、継承時にメソッドの返値を増 やすことができて嬉しいように思います。 class C def m return 1 end end class D < C def m result = super return result, extra end end def n(c) r = c.m ... end n(C.new) n(D.new) つまり、継承時にオプショナル引数を加えるという拡張が可能なのと同様に、 返値を加えるという拡張が可能であって欲しいわけです。そうすると、返値を 加える時に別メソッドにする必要が無くなり、新しい名前を考える必要がない ので嬉しいわけです。 そのためには、 In article <87n03ya3sg.wl@excelsior.priv.netlab.jp>, Shugo Maeda writes: >> Valuesは >> >> def m >> return 1,2 >> end >> >> a = m() >> >> で見えちゃいますけどね。 > > あれ、当然それも(実行時)エラーのつもりでいました。 > あおきさんの考えは違ったんでしょうか。 というところで見えてはだめで、またエラーでもだめで、単に a=1 になって 欲しいと思います。 -- [田中 哲][たなか あきら][Tanaka Akira]