次の行は、1.8.6ではなく1.8.7では正常に動作しています。私が使用できる代替手段1.8.6Ruby 1.8.6の配列内の値のインスタンスをカウントする
x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3
countはバージョン1.8.6のArrayのメソッドではないので、このエラーが発生しています。このバージョンにも同様の方法がありますか?
一般的なヒントとして次の行は、1.8.6ではなく1.8.7では正常に動作しています。私が使用できる代替手段1.8.6Ruby 1.8.6の配列内の値のインスタンスをカウントする
x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3
countはバージョン1.8.6のArrayのメソッドではないので、このエラーが発生しています。このバージョンにも同様の方法がありますか?
一般的なヒントとして は:1_8ブランチのルビー1.8.7、1.8.8(すなわち、先端の新機能の多くを実装しようとすると本当にクールなbackports
library by Marc-André Lafortuneがあり、 Subversionリポジトリで)、1.9.1と1.9.2の標準ライブラリ、そして1.8-1.9互換の純粋なRubyで可能な限りActiveSupportのいくつかの選択メソッドを提供しています。
ので、あなただけの
require 'backports'
をすれば、それはCに落とすか、壊すことなく可能であるとして、Rubyの1.9.2に近くにあなたのRuby 1.8.6、1.8.7または1.9.1をオンにします下位互換性。
免責事項:とにかく私は古いバージョンのRubyを使用しているという点は見当たらないので、実際には使用していません。
count = x.select {|e| e == 3}.size
誰かがもっと記憶に残っている場合、 'find_all'は' select'のエイリアスです。あるいは 'select'は' find_all'のエイリアスです。いずれにしても、どちらもうまく機能します。 – Telemachus
私はいつもGroovyのselectとfindAllを混同していました。したがって、複数の動的言語を使用する場合、1つに固執してみてください:) – Geo
FYIでは、特定のバックポート(この場合は 'require 'backports/1.8.7/enumerable /カウント ") –