متغیرهای کلاس و ثابت‌ها در روبی

متغیرهای کلاس (@@)، متغیرهای نمونه کلاس، ثابت‌ها و 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کلاس/ماژول

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط