私はこれに対する答えを検索しましたが、同様の問題がたくさんありますが、ここで間違っていることはまだ分かりません。私はRubyクラスを宣言し、新しいインスタンスを作成しようとしましたが、そのインスタンスのインスタンスメソッドをいくつか呼び出すので、なぜ私の起動メソッドでNoMethodErrorを取得できますか?グローバルスコープからインスタンスメソッドを呼び出すときにNoMethodErrorが発生するのはなぜですか?
class MyClass
def initialize
self.class.reset
end
def self.reset
...
end
def self.start(port)
...
end
end
test = MyClass.new
test.start '8082' <- here <- undefined method `start' for #<MyClass:0x2f494b0> (NoMethodError)
ご覧のとおり、私はRuby noobです。どんな助けもありがとう。私はクラス構造を変えることができますが、ここで間違っていることを本当に理解したいと思います。
'MyClass :: start'はインスタンスメソッドではなく(' def self'start'で、 'def start'ではなく)、クラスメソッドですので、' MyClass.start'が呼び出されます。 –
@CarySwovelandうわー、私は本当にこれについて間違った方法を考えています。説明してくれてありがとうございます(私は通常C++を使用していますので、これははるかに異なります)。それがうまくいきました。答えとして投稿すると私は受け入れます。 –