วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2565

ruby การ access Local variable กับ static variable ของ Class

 class A

  @a = 1    # เป็น global ใน Class

  class << self # กำหนด ให้ เป็น A ทำงานได้ เลย

    attr_accessor :a #ให้ A.a ทำงานได้

  end

  def pp # print ค่า. แบบ Local

    p @a

  end

 def sp(n) # set ค่า local

    @a=n

   end  


def ppp # print ค่า แบบ Static

    p A.a

   end

  def spp(n) #set ค่า แบบ Static

     A.a=n

   end

 

end



A.a จะได้ 1
A.pp จะ error เพราะไม่มีเนื้อ
ia = A.new
ia.a จะได้ null
ia.pp จะได้ null
ia.ppp จะได้ 1
ia.sp(2) 
ia.pp จะได้ 2

ib= A.new
ia.spp(4) 
ia.ppp จะได้ 4. share A.a ตัวเดียวกัน
ib.ppp จะได้ 4