Rubyにおけるプライベートなattr_readerについて

2023/12/26に公開

概要

プライベートなattr_readerを定義すると内部からのみ@無しで変数を参照出来る。

参考コード

class Unicorn
    def initialize
        @b = :b
    end

    def display_b
        pp b
    end

    private

    attr_reader :b
end

unicorn = Unicorn.new
unicorn.display_b # :b
unicorn.b #  private method `b' called for #<Unicorn:0x000078736d623b90 @a=:a, @b=:b> (NoMethodError)

Discussion