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

更新于:2022年1月25日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告