Bug #5502

範囲式の例がおかしい

Added by azarashi (Hiroshi Koyama) 7 months ago. Updated 6 months ago.

[ruby-reference-manual:<unknown>]
Status:Rejected Start date:10/28/2011
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:doc
Target version:-
reporter: ruby_version:

Description

http://doc.ruby-lang.org/ja/1.9.2/doc/spec=2foperator.html#range > 例: > > 1 .. 20 > /first/ ... /second/ 意図的にやっているかもしれないけど、 わざわざエラーとなる /first/ ... /second/ を例に挙げなくてもいいと思いますぽよ。 "first" ... "second" の方がまだよかと。 # ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] # cat test.rb 1 .. 20 /first/ ... /second/ # ruby test.rb test.rb:2:in `<main>': bad value for range (ArgumentError) (rootなのはワケアリ)

History

Updated by okkez (okkez _) 7 months ago

パッチが欲しいです。。。

Updated by 5.5 (5 5) 7 months ago

  • Category set to doc
条件式が書けるところには /first/ ... /second/ が書けますね: http://doc.ruby-lang.org/ja/1.9.3/doc/symref.html#period でも,Range オブジェクトを生成するリテラル表記のつもりで使おうとすると bad value for range (ArgumentError) になるのですね。 if /first/.../second/ みたいな書き方って,Ruby の文法がそういうふうになっているんでしょうか?

Updated by no6v (Nobuhiro IMAI) 7 months ago

$ ruby -e 'puts *1..9' | ruby -ne 'print if /3/../7/'
3
4
5
6
7

のように使えます。

Updated by 5.5 (5 5) 7 months ago

いま気づきましたが,問題の箇所 http://doc.ruby-lang.org/ja/1.9.2/doc/spec=2foperator.html#range の「条件式としての範囲式」に余すところ無く説明がありますね。 すみません,ぜんぜんここを読まずに書いてしまいました。 なので,現状でも誤りではないと思います。 ただ,この例を理解するためには,〈条件式に正規表現リテラルが書かれているときは match($_) の意味になる〉ということを理解していなければなりません。 知らないと,「正規表現から正規表現までの範囲ってなんじゃらほい?」となってしまいます。 また,Ruby 的に推奨される書き方でもない(?)と思います。 /first/ ... /second/ は削除するか,"a".."z" みたいなのでいいのではないでしょうか。

Updated by azarashi (Hiroshi Koyama) 7 months ago

>>5 5氏, Nobuhiro IMAI氏 なるほどよくわかりましたぽよ。 無知ですみませんでしたぽよ。 /first/../second/ は十分有用であることがわかりましたぽよ。 このIssueはクローズしてくださっても問題ありませんぷよ。

Updated by sho-h (Sho Hashimoto) 6 months ago

  • Status changed from Open to Rejected
上記のようですので、close (ITS 的には reject)しておきますね。

Also available in: Atom PDF