在单例类中使用变量(静态类本身)
class Single
def self.counter
if @count
@count+=1
else
@count = 5
end
end
end
在 ruby 中,任何类都是只有一个实例的对象。因此,您可以在类上创建一个实例变量,它将作为“静态”方法工作;)
输出:
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]
=> :counter
Single.counter
=> 5
Single.counter
=> 6
Single.counter
=> 7
要在主范围内获得此行为,您可以执行以下操作:
module Countable
def counter
if @count
@count+=1
else
@count = 5
end
end
end
=> :counter
self.class.prepend Countable # this "adds" the method to the main object
=> Object
counter
=> 5
counter
=> 6
counter
=> 7