Ответ 1
Ruby 1.9 больше не имеет each
в классе String
. Используйте либо each_char
, либо each_line
в зависимости от того, что вы хотите сделать. Документы для Ruby 1.9 String
: http://ruby-doc.org/core-1.9.3/String.html.
Я изучаю Ruby.
Я нашел метод 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, поэтому не думаю, что использую старую версию. Что происходит?
Ruby 1.9 больше не имеет each
в классе String
. Используйте либо each_char
, либо each_line
в зависимости от того, что вы хотите сделать. Документы для Ruby 1.9 String
: http://ruby-doc.org/core-1.9.3/String.html.
Вместо этого используйте each_char
:
"hello\nworld".each_char {|s| p s}
почему он не работает, он работает в 1.8, но не 1.9.
Вы смотрите на документы для версии 1.8. Строка # каждая была удалена в 1.9. Вместо этого используйте each_line.
Работает в 1.8.7, не отображается в документах 1.9 - должно быть, устарели.
Здесь мы идем: https://web.archive.org/web/20090423003136/http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l113