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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.