區域性變數
以小寫字母或下劃線開頭的識別符號在 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...