Monday, April 03, 2006

[ruby] instance variable ของใคร?

ลองดู code นี้แล้วทายสิว่า
ถ้าเราเรียก method x แล้วจะได้อะไรกลับมา

class Foo
@x = 1
def x
@x
end
end

f = Foo.new
f.x # => nil

ใน ruby, class ก็คือ object หนึ่ง(ไม่เหมือน java)
ดังนั้น @x ของเราก็ตือ instance variable ของ class Foo

class Foo
@x = 1
def initialize(value)
@x = value
end
def x
@x
end
def self.x
@x
end
end

f = Foo.new(8)
f.x # => 8
Foo.x # => 1

Related link from Roti

No comments: