متغیرهای کلاس و ثابتها در روبی
متغیرهای کلاس (@@)، متغیرهای نمونه کلاس، ثابتها و self در روبی
متغیرهای کلاس (@@)
بین همه اشیای یک کلاس مشترک است:
class Counter
@@count = 0
def initialize
@@count += 1
end
def self.count
@@count
end
end
Counter.new
Counter.new
Counter.new
puts Counter.count # => 3
متغیرهای نمونه کلاس (@@ در سطح کلاس)
class Config
@settings = {}
def self.set(key, value)
@settings[key] = value
end
def self.get(key)
@settings[key]
end
end
Config.set(:theme, "dark")
puts Config.get(:theme) # => dark
ثابتها (Constants)
class Circle
PI = 3.14159
DEFAULT_RADIUS = 10
def area(radius = DEFAULT_RADIUS)
PI * radius ** 2
end
end
puts Circle::PI # => 3.14159
puts Circle::DEFAULT_RADIUS # => 10
خلاصه
| نوع | پیشوند | دامنه |
|---|---|---|
| کلاس | @@ | کل کلاس |
| نمونه کلاس | @ در سطح کلاس | کلاس (نه اشیا) |
| ثابت | UPPER_CASE | کلاس/ماژول |
این مبحث بخشی از دوره آموزش کامل روبی است.