ruby-reference-manual:3246
From: okkez <okkez000@g...>
Date: Sun, 2 Sep 2012 12:06:51 +0900
Subject: [ruby-reference-manual:3246] Re: 「返り値が不定」の意味についての質問
okkez です。 2012年9月2日 8:21 py <py.kaei@g...>: > こんにちは。 > > > http://bugs.ruby-lang.org/projects/rurema/wiki/HowToWriteMethodEntry >> --- Enumerable#map {...} -> [object] >> --- Array#pop -> object >> --- Test::Unit::Assertions#assert(val) -> () >> # 任意の型の場合、「object」 >> # 返り値が不定の場合は、「-> ()」と書く。 >> -> ()の用法 >> 返り値が不定の場合は「-> ()」と書きますが、単に任意の型が返ってくる場合にも「-> > ()」を使ってしまっているケースが見受けられます。その場合は「-> object」です。 > > wiki のこの辺を読んでいて疑問に思ったのですが「不定」というのは具体的にはどんな状況でしょうか。 > 考えてみて思いついたのは副作用が主のメソッドでたまたま最後に評価されたというだけの論理的に意味の無い値が返されてるケースです。 > が、上に例として挙がってる Test::Unit::Assertions#assert はそういうのではなさそうです。 > 1.8系は nil、1.9系は true を返すようです。 > 昔は違ったんでしょうか?それとも今の状態を指して不定と書いてるんでしょうか? > この文章が書かれたときは 1.8 系しかなかったので、「昔は違った」であってると思います。 そもそも、1.8系と1.9系では test/unit の実装(ライブラリ)が違います。 例として不適切なので直すべきだと思います。 「不定」の意味ですが、意味は文字通り「不定」です。 例えば、メソッドを呼び出した後に制御が戻ってこない場合や、常に例外が発生する場合などに使用します。 > 考えてみて思いついたのは副作用が主のメソッドでたまたま最後に評価されたというだけの論理的に意味の無い値が返されてるケースです。 この場合も「不定」としている場合があります。 コードを読めば、返り値の型はわかる場合が多いので型を書いていることもあります。 MLの過去ログにその辺の議論があったと思いますが、どの辺で議論したのかは忘れてしまいました。 -- okkez okkez000@g... -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
3244 2012-09-02 01:21 [py.kaei@g... ] 「返り値が不定」の意味についての質問 -> 3246 2012-09-02 05:06 ┗[okkez000@g... ] 3247 2012-09-02 05:59 ┣[py.kaei@g... ] 3248 2012-09-02 07:07 ┗[py.kaei@g... ]