Rubyクラスインスタンス変数とインスタンス変数


コード先行

class Kitty
  @class_ins_1 = 1

  attr_accessor :ins_1, :ins_2

  def initialize
    @ins_1 = 11
  end

  class << Kitty
    attr_accessor :class_ins_1, :class_ins_2
  end
end

puts Kitty.class_ins_1
Kitty.class_ins_2 = 2
puts Kitty.class_ins_2

k = Kitty.new
puts k.ins_1
k.ins_2 = 22
puts k.ins_2

クラスインスタンス変数の本質はインスタンス変数と同じであることがわかる.
ただし、クラスインスタンス変数はそのクラスインスタンスのインスタンス変数です.
本質的検討は参考になる
ルビー文法の早口言葉(挑戦して)