When a new class is created (typically using class Name ... end), an object of type Class is created and assigned to a global constant (Name in this case).
ถ้าลองนำมาเขียนในแบบที่ไม่ได้ใช้ syntax ปกติดู
Object.const_set("Person", Class.new)
pok = Person.new
method
const_set
คือการ set ค่า global constantในทีนี้ก็คือการ set global constant ที่ชื่อ "Person"
ที่นี้ถ้าต้องการ define method ก็สามารถใช้พวก class_eval ได้เลย
Person.class_eval do
attr_accessor :name, :gender
def to_s
"#{name}, #{gender}"
end
end
pok.name = "polawat"
pok.gender = "male"
puts pok # => polawat, male
No comments:
Post a Comment