[解決済み] nil:NilClass のための未定義のメソッド `+' (NoMethodError)
2022-02-05 09:47:04
質問
私は、整数である "cash" という変数で初期化される簡単なクラスを書いています。
以下はそのコードです。これを実行すると、NoMethodErrorが発生します。ローカルクラス変数を@cashで参照すれば簡単に解決することは分かっているのですが、私が読んだOOPの本では@はほとんど使わず、代わりにattrを設定して単に「cash」とすることを勧めています。attr_accessorを設定しましたが、うまくいきませんので、その理由を理解したいと思います。ありがとうございます。
class Person
attr_accessor :cash
def initialize(cash)
@cash = cash
end
def add_cash(amount)
cash = cash + amount
end
end
解決方法は?
ローカル変数の参照は、同名のメソッド呼び出しより優先されます。
同様に、ローカル変数の代入は、同名のメソッド呼び出しより優先されます。という形式のライターメソッドは
foo=
は、明示的なレシーバが必要です。レシーバーが省略された場合、メソッドとして認識されず、ローカル変数の代入として認識される。
def add_cash(amount)
self.cash = cash + amount
end
関連
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] ルビー階乗関数
-
[解決済み] Ruby Detect方式
-
[解決済み] nil から String への暗黙の変換ができないエラー
-
[解決済み] Ruby on Railsでホスト名やIPを取得する
-
[解決済み] ルビー、すべての単語の最初の文字を大文字にする
-
[解決済み] Ruby Net::HTTPの実行期限が切れた
-
[解決済み] ファイルの存在を確認する方法 [重複]について
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法
-
[解決済み] gemのインストールで --no-ri --no-rdoc をデフォルトにするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] ルビー階乗関数
-
[解決済み] Ruby - 文字列を日付に変換する
-
[解決済み] あなたが提供した認証メカニズムはサポートされていません。AWS4-HMAC-SHA256を使用してください。
-
[解決済み] Rubyのcontinueに相当します。
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
-
[解決済み] rvmのインストールがうまくいきません。"RVMは機能ではありません"
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法
-
[解決済み] Rubyにバイナリ検索は組み込まれていますか?