object.functionName構文を使用して呼び出し可能なコアRubyメソッドのみですか?ドット構文で呼び出し可能なメソッドを自分で作成することは可能ですか?この方法についてはドットシンタックスとパラメータ渡しシンタックス
:作品以下
def namechanger (name)
nametochange = name
puts "This is the name to change: #{nametochange}"
end
第1、第二にはありません。
namechanger("Steve")
"Steve".namechanger
私は"Steve".namechanger
上のエラー、エラーがある取得:
rb:21:in `<main>': private method `namechanger' called for "Steve":String (NoMethodError)
さて、問題はどのような*エラーメッセージ*頼みますか?そして**それはなぜ理にかなっているのですか?あなたがRubyで "クラスを開く"ことができますが、これも汚染の原因になります。おそらく、あなたは 'Person.new(" Steve ")change_name(" Fred ")'のようなパターンに従いたいと思っていますか? –
エラーを追加しました。ありがとうございました – holaSenor
'obj.m' *は*常に"受信者 'obj'にメッセージ" m "を送ることを意味しています。これはRubyでは' "x"を作る唯一の方法です。 '' x "'を有効にすることです。 'String'、' m'に応答します。 (いくつかの他の言語では、受信者または受信者の親を変更せずに過負荷を作成することができます) –