在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Ruby/ Ruby變量
Ruby for循環(huán)
Ruby教程
Ruby文件I/O
Ruby迭代器
Ruby哈希
Ruby日期時(shí)間
Ruby類和對(duì)象
Ruby快速入門(30分鐘)
Ruby redo/retry語(yǔ)句
Ruby模塊
Ruby解析XML(REXML)
Ruby if-else語(yǔ)句
Ruby的功能特點(diǎn)
Ruby break/next語(yǔ)句
Ruby方法
Ruby是什么?
Ruby與Python比較
Ruby Case語(yǔ)句
Ruby目錄
Ruby范圍
Ruby異常
Ruby套接字編程(Socket)
Ruby字符串
Ruby安裝配置
Ruby運(yùn)算符
Ruby while/do...while循環(huán)語(yǔ)句
Ruby第一個(gè)HelloWorld程序
Ruby until循環(huán)語(yǔ)句
Ruby注釋
Ruby塊
Ruby數(shù)據(jù)類型
Ruby面向?qū)ο?/span>
Ruby正則表達(dá)式
Ruby數(shù)組
Ruby變量
Ruby多線程編程

Ruby變量

Ruby變量是用于保存在程序中使用的數(shù)據(jù)的位置。 每個(gè)變量都有不同的名稱。 這些變量名稱基于一些命名約定。 不像其他編程語(yǔ)言,在Ruby中不必先聲明變量再使用。 只需要一個(gè)前綴來(lái)指示它就可以了。

Ruby中有四種類型的變量:

  • 局部變量
  • 類變量
  • 實(shí)例變量
  • 全局變量

1. 局部變量

局部變量名以小寫(xiě)字母或下劃線(_)開(kāi)頭。變量可在它的初始化塊內(nèi)或范圍內(nèi)訪問(wèn)。代碼塊完成后,變量就不在作用域存在了。

當(dāng)未初始化的局部變量被調(diào)用時(shí),它們被解釋為對(duì)沒(méi)有參數(shù)的方法的調(diào)用。

2. 類變量

類變量名以@@符號(hào)開(kāi)頭。需要在使用前進(jìn)行初始化。 類變量屬于整個(gè)類,可以從類中的任何位置訪問(wèn)。 如果在一個(gè)實(shí)例中該值將被更改,則它將在每個(gè)實(shí)例中被改變。

類變量由類的所有后代共享,未初始化的類變量將導(dǎo)致錯(cuò)誤。

示例:

創(chuàng)建一個(gè)Ruby文件:class-variables.rb,編寫(xiě)以下代碼 -

#!/usr/bin/ruby   

class States   
   @@no_of_states=0   
   def initialize(name)   
      @states_name=name   
      @@no_of_states += 1   
   end   
   def display()   
     puts "State name #@state_name"   
    end   
    def total_no_of_states()   
       puts "Total number of states written: #@@no_of_states"   
    end   
end   

# Create Objects   
first=States.new("Assam")   
second=States.new("Meghalaya")   
third=States.new("Maharashtra")   
fourth=States.new("Pondicherry")   

# Call Methods   
first.total_no_of_states()   
second.total_no_of_states()   
third.total_no_of_states()   
fourth.total_no_of_states()

在上面的例子中,@@no_of_states是一個(gè)類變量。

執(zhí)行上面代碼,輸出結(jié)果如下:

F:\worksp\ruby>ruby class-variables.rb
Total number of states written: 4
Total number of states written: 4
Total number of states written: 4
Total number of states written: 4

F:\worksp\ruby>

3. 實(shí)例變量

實(shí)例變量名以@符號(hào)開(kāi)頭。 它屬于類的一個(gè)實(shí)例,可以從方法中的類的任何實(shí)例訪問(wèn)。 它們只能訪問(wèn)一個(gè)特定的類的實(shí)例。

它們不需要初始化,未初始化的實(shí)例變量的值是:nil 。

示例:

創(chuàng)建一個(gè)Ruby文件:instance-variables.rb,編寫(xiě)以下代碼 -

#!/usr/bin/ruby   

class States   
   def initialize(name)   
      @states_name=name   
   end   
   def display()   
      puts "States name #@states_name"   
    end   
end   

# Create Objects   
first=States.new("Hainan")   
second=States.new("GuangDong")   
third=States.new("Beijing")   
fourth=States.new("ShangDong")   

# Call Methods   
first.display()   
second.display()   
third.display()   
fourth.display()

執(zhí)行上面代碼,輸出結(jié)果如下:

F:\worksp\ruby>ruby instance-variables.rb
States name Hainan
States name GuangDong
States name Beijing
States name ShangDong

F:\worksp\ruby>

4. 全局變量

全局變量名以$號(hào)開(kāi)頭。在全局范圍內(nèi)可訪問(wèn),可以從程序中的任何位置訪問(wèn)它。

未初始化的全局變量的值會(huì)被初始化為:nil。建議不要使用全局變量,因?yàn)樗鼈兪钩绦蜃兊妹孛芎蛷?fù)雜。

Ruby中有一些預(yù)定義的全局變量。

示例:

創(chuàng)建一個(gè)Ruby文件:global-variables.rb,編寫(xiě)以下代碼 -

#!/usr/bin/ruby   

$global_var = "GLOBAL"   
class One   
  def display   
     puts "Global variable in One is #$global_var"   
  end   
end   
class Two   
  def display   
     puts "Global variable in Two is #$global_var"   
  end   
end   

oneobj = One.new   
oneobj.display   
twoobj = Two.new   
twoobj.display

執(zhí)行上面代碼,輸出結(jié)果如下:

F:\worksp\ruby>ruby global-variables.rb
Global variable in One is GLOBAL
Global variable in Two is GLOBAL

F:\worksp\ruby>

總結(jié)

以下是上面幾種類型變量的概括 -

特性 局部變量 全局變量 實(shí)例變量 類變量
范圍 僅限于初始化塊內(nèi) 全局范圍 屬于一個(gè)類的一個(gè)實(shí)例 僅限于創(chuàng)建它們的整個(gè)類
命名約定 以小寫(xiě)字母或下劃線(_)開(kāi)頭 $符號(hào)開(kāi)頭 @符號(hào)開(kāi)頭 @@符號(hào)開(kāi)頭
初始化 不需要初始化,未初始化的局部變量被解釋為沒(méi)有參數(shù)的方法 不需要初始化,未初始化的全局變量的值為:nil。 不需要初始化,未初始化的實(shí)例變量的值為:nil 需要在使用前進(jìn)行初始化,未初始化的全局變量會(huì)導(dǎo)致錯(cuò)誤。

上一篇:Ruby異常下一篇:Ruby哈希