#Ruby メソッドの公開レベルについて
プロを目指す人のためのRubyという書籍を参考に学習を進めています。
以下のようなコードを実行した場合には
privateメソッドはレシーバーを指定して呼び出すことができないはずであるので
self.nameの部分でNoMethodError:private method 'name'...
のエラーが起こるという記述があるのですが、問題なく実行ができてしまいます。
レシーバーを指定してprivateメソッドを呼び出しているのにもかかわらず、
エラーが発生しないのは何故なのでしょうか?
アドバイスをいただけると幸いです。
Ruby
1class User 2 def hello 3 #nameメソッドはprivateなのでselfをつけるとエラーになる 4 "Hello, I am #{self.name}" 5 end 6 7 private 8 9 def name 10 "Alice" 11 end 12end 13 14user = User.new 15user.hello #NoMethodError:private method 'name'...となるはず 16
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/09 13:14