1

私はルビー1.8.7を使用しています

my_array = Array.new(5, "A")

正常に動作します。ただし、次のようにArrayクラスを拡張すると、次のようになります。

class Array
  def my_function
    self
  end
end

その後、イニシャライザは機能しなくなり、

wrong number of arguments (2 for 0)

これはなぜですか、どうすれば修正できますか?

4

1 に答える 1

3

あなたはこれを内部でやっていModuleますか?その場合、標準ライブラリからArray拡張するのではなく、別のクラスを定義します。Array

拡張機能がトップレベルにあることを確認するか、次のように記述します。

class ::Array

(ちなみに、Ruby 1.8.7を使用する理由はありますか?そうでない場合は、最新バージョンを使用することをお勧めします。Rubyは長年にわたって改善されています。)

于 2012-07-25T04:31:47.040 に答える