r66  2021/04/07更新

ゲッターメソッドとは?


A:クラス外からインスタンス変数を参照するためのメソッド(参照のみ)

## 何故必要か?
rubyではクラス外からインスタンス変数を参照できない。
よって、インスタンス変数を読み取る必要がある。ゲッターメソッドはそれができる!

# 書き方

def User
    def initialize(name)
        @name = name
    end
    def name←ゲッターメソッド
        @name
    end
end
r = User.new('私だ')
p r.name

*ゲッターメソッドを経由できるので、"r.name"をクラス外で定義しても参照できる!

## しかし
参照したいインスタンス変数が複数あった場合、いくつもゲッターメソッドを定義しなければならない

def User
    def initialize(name)
        @name = name
    end
    def name←ゲッターメソッド
        @name
    end
    def age←ゲッターメソッド
        @name
    end
    def gender←ゲッターメソッド
        @name
    end
end

## 解決策
attr_readerを使う!!(ゲッターメソッドを定義してくれる)

def User
atter_reader :name, ;age, :gender ←これを記入
    def initialize(name)
        @name = name
    end
end

タイトルとURLをコピーしました