[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:1735

From: 5 5 <redmine@r...>
Date: Mon, 28 Sep 2009 14:22:32 +0900
Subject: [ruby-reference-manual:1735] [Bug #2150] String#partition と String#rpartition

Bug #2150: String#partition と String#rpartition
http://redmine.ruby-lang.org/issues/show/2150

起票者: 5 5
ステータス: Open, 優先度: Normal
カテゴリ: doc
reporter: 5.5, ruby_version: 1.8, 1.9

まず,誤りについて。
String#rpartition の説明に
 self がセパレータを含まないときは、返り値の第 2 要素と第 3 要素が空文字列になります。 
とありますが,正しくは「第 1 要素と第 2 要素」です。

また String#partition と String#rpartition ともに,
 self を 2 つに分割し
とあります。「2 つ」と書きたい気持ちは分かるのですが,「3 つ」が適当でしょう。

String#rpartition の実行例で,メソッド名に「r」が抜けています。

次に,分かりやすくするための提案です。
partition の説明で,
 セパレータを含まない先頭部分
という表現がありますが,rpartition の場合を真似て
 最初のセパレータより前の部分
のほうが分かりやすいと思います。

ところで,「最後のセパレータ」という表現が実はちょっとひっかかります。
「最後の」というと,String#split のように self について N 個の分割点が概念上,想定できて,その N 番目のもの,というように受け取れなくもありません。
つまり,axaxaxaxaxa を xax で分割するのに,a<xax>a<xax>axa のように考えてしまって(< > 内がセパレータ),「最後のセパレータ」での分割は ["axaxa", "xax", "axa"] となりそうです。しかし rpartition の分割はそうではありません。
「最後のセパレータ」というよりも,「最も後ろ(右?)に現れるセパレータ」のほうが正確なのではないかと思います。正規表現でいうと最右最長一致ですね。
※この件は現行の説明でも困らないと思うので,無視していただいて結構です。


----------------------------------------
http://redmine.ruby-lang.org

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    1735 2009-09-28 07:22 [redmine@r...        ] [Bug #2150] String#partition と String#rpartition
      1872 2009-12-05 07:28 ┗[redmine@r...        ] [Bug #2150](Closed) String#partition と String#rpartition