43

文字列の末尾までインデックスから部分文字列を抽出するための Ruby イディオムがあるかどうか疑問に思っています。str[index..-1]範囲オブジェクトをString'sメソッドに渡すことでどちらが機能するかはわかっています[]が、少し扱いに​​くいです。たとえば、python ではstr[index:]、文字列の残りの部分を暗黙的に取得するように記述できます。

例:

s = "hello world"
s[6..-1] # <-- "world"

より良いものはありs[6..-1]ますか?

4

6 に答える 6

7

そうではないと思います。

それRangeを行うためのより良い方法のようです。

于 2013-02-13T06:37:20.060 に答える
7

ご希望の場合は、こちらが「より良い」です。ruby String クラスを拡張して、このメソッドをコードに使用できます。例えば:

class String
  def last num
    self[-num..-1]
  end
end

その後:

s = "hello world"
p s.last(6)
于 2013-02-13T06:55:34.803 に答える
2

Stringクラスを延長できます。それがルビーのイディオムかどうかはわかりませんが:

class String
  def last(n)
    self[(self.length - n)..-1]
  end
end
于 2013-02-13T06:55:52.670 に答える