str.each в Ruby не работает - PullRequest
       10

str.each в Ruby не работает

21 голосов
/ 20 января 2010

Я учу Руби.

Я нашел метод String#each в http://ruby -doc.org / core / classes / String.html .

Когда я пытаюсь его использовать ...

irb(main):001:0> "hello\nworld".each {|s| p s}
NoMethodError: undefined method `each' for "hello\nworld":String

... но я понял NoMethodError.

Я использую Ruby 1.9.1p253, поэтому я не думаю, что использую старую версию. Что происходит?

Ответы [ 4 ]

34 голосов
/ 20 января 2010

Ruby 1.9 больше не имеет each в классе String. Используйте each_char или each_line в зависимости от того, что вы хотите сделать. Документы для Ruby 1.9 String: http://ruby -doc.org / core-1.9.3 / String.html .

8 голосов
/ 20 января 2010

Используйте each_char вместо:

"hello\nworld".each_char {|s| p s}

почему не работает, работает в 1.8, но не в 1.9.

3 голосов
/ 20 января 2010

Вы смотрите на документы для 1.8. Строка # каждая была удалена в 1.9. Вместо этого используйте each_line.

2 голосов
/ 20 января 2010

Работает в 1.8.7, не отображается в 1.9 документации - должно быть устарело.

Вот и мы: https://web.archive.org/web/20090423003136/http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l113

...