Ruby编程中的静态成员
Ruby中的静态成员是通过类声明的。由于Ruby没有提供像static这样的保留关键字,当我们使用类变量时,我们创建了一个静态变量,然后我们可以声明该类的某个方法,其中该静态变量也定义为静态方法。
在Ruby中,有两种实现static关键字的方法:
静态变量
静态方法
在这篇文章中,我们将探讨这两种实现,首先,我们将探讨如何声明静态变量的代码示例,然后我们将看到如何声明静态方法。
静态变量
要声明静态变量,我们只需要声明一个类变量,它将充当静态变量,因为它对于类的所有实例都是通用的。简单来说,当我们谈论Ruby时,静态变量是使用类变量声明的。
当我们声明一个变量为静态时,将为其分配空间,直到程序的整个生命周期。
需要注意的是,静态变量的名称总是以@@符号开头。
示例1
考虑下面显示的代码,我们在其中声明一个静态变量。
class Coders # static class variable @@coders_count = 0 def initialize @@coders_count += 1 puts "Number of Coders = #{@@coders_count}" end end # creating objects of class Coders a = Coders.new b = Coders.new c = Coders.new d = Coders.new e = Coders.new
输出
它将产生以下输出:
Number of Coders = 1 Number of Coders = 2 Number of Coders = 3 Number of Coders = 4 Number of Coders = 5
在上面的代码中,我们有一个名为Coders的类,其中有一个名为coder_count的类变量。这个coder_count变量可以被我们创建的所有Coders类对象共享,因此充当静态变量。
静态方法
当我们在类中定义一个对类的所有实例都通用的方法时,我们可以称之为静态方法。
示例2
考虑下面显示的代码
class Coders @@coders_count = 0 def incrementCoder @@coders_count += 1 end def self.getCount return @@coders_count end end # creating objects of class Coders a = Coders.new a.incrementCoder() b = Coders.new b.incrementCoder() c = Coders.new c.incrementCoder() # calling class method puts "Total Number of Coders = #{Coders.getCount()}"
输出
它将生成以下输出:
Total Number of Coders are = 3
广告