Ruby 入門 變數和常量

2021-08-27 22:22:28 字數 2205 閱讀 5177

區域性變數

以小寫字母或下劃線開頭的識別符號在 ruby 中即為區域性變數(如果引用未被宣告的識別符號則會被解釋成無引數的方法呼叫)。

val = 5 if false
雖然 val 未被賦值,但宣告還是有效的,此時 val 的值是 nil(相當於 c# 中的 null)。

例項變數

所有例項變數都是 @ 字元打頭的識別符號,未被初始化的例項變數值為 nil。

class employee

@empid

end

類變數

以 @@ 開頭的識別符號是類變數。在 module 中定義的模組變數能夠被所有包含該 module 的類訪問。

1module company

2 @@companyname = "hello ruby."

3 4 class employee

5 def display

6 print "#@companyname"

7 end

8 end

910 class department

11 def display

12 print "#@companyname"

13 end

14 end

15end

全域性變數

全域性變數無需宣告,所有以 $ 開始的識別符號都是全域性變數,能夠在程式的任何地方引用它,未賦值的全域性變數值為 nil。

1module company

2 class employee

3 def display

4 # nil

5 print "#$companyname"

6 $companyname = "hello ruby."

7 end

8 end

910 class department

11 def display

12 # hello ruby.

13 print "#$companyname"

14 end

15 end

16end

偽變數

在 ruby 中有一種被稱為偽變數的識別符號,偽變數有一點像環境變數,同時它也是唯讀的。

# 當前方法的執行主體

print "#"

# nilclass類的唯一例項

print "#"

# trueclass 類的唯一例項

print "#"

# falseclass 類的唯一例項

print "#"

# 當前源檔名

print "#"

# 當前原始檔中的行號

print "#"

常量

以大寫字母打頭的識別符號是常量,對常量進行二次賦值直譯器會提示警告,而引用未被賦值的常量實丟擲 nameerror 異常。在類、模組外部定義的常量屬於 object,可以使用「::常量名」引用屬於 object 的常量,以「模組名/類名::常量名」的形式引用外部的常量。

1# 屬於 object 的常量

2groupname = "心守家園"

3 4module site

5 siteurl = ""

6 7 class sichuan

8 add = "涼山"

9 # 引用屬於 object 的常量

10 print "#"

11 end

12end

1314# 直接引用類名、模組名

15# 引用屬於 object 的模組時可以省略「::」

16print "#\n#"

17# 屬於模組的常量

18print "#"

19# 屬於類的常量

20print "#"

當引用模組和類中同名的常量時,優先引用巢狀樹外側的常量, object 的優先度最低,不過我建議大家盡量不使用同名常量。

Ruby物件 變數和常量

ruby操作的資料主要有部分 物件 類 變數 常量.在ruby中表示資料的基本單位稱為物件,在ruby中一切都是物件.常用物件 類 class 就是物件的種類,物件的特性是由類決定的。物件類 數值numberic 字串string 陣列array 雜湊hash 正規表示式 regexp 檔案file...

Ruby物件 變數和常量

ruby操作的資料主要有部分 物件 類 變數 常量.在ruby中表示資料的基本單位稱為物件,在ruby中一切都是物件.常用物件 數值物件 2 3.14 5等表示數字的物件,另外還有矩陣 複數 素數 公式的物件.字串物件 hello world 你好 等表示文字的物件陣列物件 雜湊物件 表示多個資料的...

變數和常量

package com.xy.pf.test.xiti 關鍵字static 1.靜態方法和靜態變數是屬於某乙個類,而不屬於類的物件 2.靜態方法和靜態變數的引用直接通過類名呼叫 3.在靜態方法中不能呼叫非靜態的方法和引用非靜態的成員變數 反之,則可以 4.可以用類的物件obj來呼叫靜態的方法meth...