ちわ、時田です

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-list:19554] Re: String#shift?
Date: Thu, 16 Dec 1999 00:52:18 +0900

> まつもと ゆきひろです
> 
> In message "[ruby-list:19550] Re: String#shift?"
>     on 99/12/16, Norio Suzuki <nosuzuki / e-mail.ne.jp> writes:

> |ただ、shift と言うメソッド名に引っ掛かります。shift だと単純に 1キャラ
> |クターずつ取れてくるというイメージです。
> 
> そーですね。配列との対比でいうとそういうイメージがありますね。
> 適切な名前が見付かれば採用できるかも。
> 
>                                 まつもと ゆきひろ /:|)


私も同じような機能が欲しくて、ちょっと前にとりあえずこんなのを使ってみました

class String
  def shift(num)
    dat = self[0,num]
    self.replace(self[num..self.size-1])
    return dat
  end
end

先頭から文字列を取り除くのと、後ろに文字列くっつけるのがあれば良くて
後ろにつけるのは += すればいいだけだから、取り出すのを作ってみたわけです

ネーミングは私も もっといいのがあればと思うんですが…(^^;

でも、ワードで扱うより 基本的機能にするならこっちのが「らしい」と
思うんですが    … なんか、私勘違いしてます?(^^;

コーディング的には、もっと綺麗にかけそうな気もするのだけど
先頭を読むのはなんとでもなるとして、先頭部分を削るのに replace ってのも
美しくないなぁ… って思ってしまいます。
selfの指すオブジェクトのインデックス位置を移動するようなメッソッドが
あればいいんですが  そんなのあります?(^^;

--
時田幸粋
E-mail: ktokita / ma.neweb.ne.jp
URL   : http://www1.neweb.ne.jp/wa/ktokita