[解決済み] インスタンス変数: self vs @
2022-04-15 22:14:09
質問
以下はそのコードです。
class Person
def initialize(age)
@age = age
end
def age
@age
end
def age_difference_with(other_person)
(self.age - other_person.age).abs
end
protected :age
end
私が知りたいのは、このような場合に
@age
と
self.age
で
age_difference_with
メソッドを使用します。
どのように解決するのですか?
書き方
@age
はインスタンス変数に直接アクセスします。
@age
. 書き方
self.age
は、オブジェクトに自分自身にメッセージを送信するよう指示します。
age
というインスタンス変数を返します。
@age
- を実行する方法によっては、他の多くのことを行うことができます。
age
メソッドが特定のサブクラスで実装されています。例えば、MiddleAgedSocialiteクラスがあり、常に実際の年齢より10歳若く報告するような場合です。あるいは、より現実的な例として、PersistentPersonクラスが永続ストアからデータを読み込んで、永続データをすべてハッシュにキャッシュするかもしれません。
関連
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Rubyで日付文字列をパースする
-
[解決済み] Railsアプリでhttpartyを使用して基本認証を使用するには?
-
[解決済み] ルビー.天井と.床
-
[解決済み] 自分」という言葉は何のためにあるのか?
-
[解決済み] Rubyのclass << selfイディオム
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
-
[解決済み] Ruby、execとsystemと%x()またはBackticksの違いについて
-
[解決済み】Rubyのクラスインスタンス変数とクラス変数の比較
最新
-
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の1e18という数字は何を意味するのか?
-
[解決済み] RVM は関数ではないので、'rvm use ...' でルビーを選択してもうまくいきません。
-
[解決済み] Ruby 'require' エラー: そのようなファイルをロードできない
-
[解決済み] Rubyの配列から文字列への変換
-
[解決済み] ルビースリープやディレイは1秒以下?
-
[解決済み] Homebrew Portable Ruby のインストールに失敗しました (システムのバージョンが古すぎる場合もあります)
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] gemをインストールできない - makeが内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されない。
-
[解決済み] Rubyでリフレクション?
-
[解決済み] Rubyでガウス(正規分布)乱数を生成するコード