22

我正在学习红宝石。

String#eachhttp://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

4 回答 4

36

Ruby 1.9 不再具有each该类String。使用其中一个each_chareach_line取决于您想要做什么。Ruby 1.9 的文档Stringhttp://ruby-doc.org/core-1.9.3/String.html

于 2010-01-20T19:40:29.150 回答
10

改用each_char

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

至于为什么它不起作用,它适用于 1.8 而不是 1.9。

于 2010-01-20T19:39:56.547 回答
3

您正在查看 1.8 的文档。String#each 已在 1.9 中删除。请改用 each_line。

于 2010-01-20T19:41:12.677 回答
2

在 1.8.7 中工作,未出现在 1.9 文档中——一定已被弃用。

我们开始吧:https ://web.archive.org/web/20090423003136/http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l113

于 2010-01-20T19:39:29.313 回答