4

私は初心者なので、このかなり単純な質問を許してください:

次のコードを実行しようとすると:

c = "hey there you you"
newarray = c.grep("you")
puts newarray

ST2: <main>': undefined methodgrep' for "hey there you you":String (NoMethodError)でエラーが発生します。

ただし、配列を使用してこのコードを実行すると、機能します。

c = ["hey", "there", "you"]
newarray = c.grep("you")
puts newarray

私が学んでいる本の例は、grepが文字列に直接適用されている例を示しているため、なぜこれが起こっているのかわかりません。誰でも私を啓発できますか?

4

1 に答える 1

4

grep は列挙可能なメソッドであるため、配列とハッシュに適用できます。include?"hey there you you" は文字列なのでor matchorを探していますscan

"hey there you you".match 'you'
"hey there you you".scan 'you' # returns 2 results
于 2013-02-12T06:10:45.060 に答える