1. ホーム
  2. ruby

インスタンス変数への直接アクセスとアクセッサメソッドの使用

2023-08-02 11:22:21

質問

インスタンス属性にアクセスする際に self.attribute でアクセスするのと @attribute ?

どのように解決するのですか?

self.attribute はメソッドを呼び出します。 attribute .

self.attribute = value はメソッドを呼び出します。 attribute= を引数として value .

@attribute そして @attribute = value インスタンス変数の値を取得/設定する @attribute .

基本的には全く別のものなんですね。

しかし、もしあなたが attr_accessor :attribute というメソッドを定義しています。 attribute を返すために @attribute というメソッドと attribute=(value) を設定する @attribute = value . ですから、その場合、違いはありません。