Rubyで 'main'メソッド内でクラスメソッドを呼び出すことができるかどうかは疑問です。メソッドがRubyの 'main'メソッド内で呼び出されたときの未定義メソッドエラー?
以下のコードではエラーが発生します。
test.rb
class Client
def printtwo
puts 2
end
if __FILE__ == $0 #if this file gets run by an interpreter, run below codes
#just like main() method in java
printtwo() #this throws below error
#undefined method `printtwo' for Client:Class (NoMethodError)
end
end
クラス宣言のないコードが正常に動作しながら、私は
test2.rb
def printtwo
puts 2
end
if __FILE__ == $
printtwo() #this prints 2
end
それらを実行する場合、私はクラス宣言内でこの実行可能ファイルを使用したい理由があるためであります私はattr_accessor
を設定してクラス変数を使いたいと思っています。私はこのattr_accessor
をクラスで使用しなければならないと信じています。右?
メソッドコールでエラーが発生しないようにこの問題を解決するにはどうすればよいですか?
したがって、 'def self.method_name'はJavaのプライベートメソッドと似ていますが、それはクラスの内部でしか呼び出せないからです。 – user482594
@ user482594 - これは実際には(多かれ少なかれ) 'static'と同等です。 'instance_of_myclass.method'ではなく' MyClass.method'を呼び出すことを意味します。アクセシビリティには影響しません。 –