命名方式:
常見的命名方式有 snake_case 跟 camelCase 這兩者。
在 Ruby 大部分是使用小寫英文字母以及底線來組合變數名稱,
例如像是 my_new_post,蛇式命名(snake_case)。
Constant 常數
命名規則:常數是大寫英文字母開頭!
1
2
3
4
5
6
7
8
9
10Name = "apple"
Height = 150
# 類別
class Sky
end
# 模組
module Cloud
end在 Ruby,常數的內容是可以修改而且不會發生錯誤:
1
2Food = "蘋果"
Food = "香蕉" # warning: already initialized constant Food雖然有 warning 訊息,但還是可以把香蕉指定給帶有蘋果常數 Food
常數要從後面插入字串也可以:
1
2
3Food = "蘋果"
Food << "香蕉"
Food # "蘋果香蕉"
Variable 變數
Types | Example | Default | Remark |
---|---|---|---|
Local Variable 區域變數 | name | none | 非大寫字母開頭 |
Global Variable 全域變數 | $name | nil | 有 $ 符號 |
Instance Variable 實體變數 | @name | nil | 有 1 個 @ 符號 |
Class Variable 類別變數 | @@name | none | 有 2 個 @ 符號 |
Pseudo Variable 虛擬變數 | nil, self, true, false | - | - |
虛擬變數通常有特別的用途或意義,內容不能被改變
1
2nil = 123 # Can't change the value of self (SyntaxError)
self = "me" # Can't change the value of self (SyntaxError)使用變數
在 Ruby 使用變數,不需要特別宣告或是指定型態,直接拿來用就可以了。
在變數命名規則上,常使用英文字母、數字或底線的組合 (蛇式命名)。或是非英文字母也可以,例如:1
2
3
4
5
6
7
8a = 1
puts a # 1
me = "Viii"
puts me # Viii
x, y, z = [2, 4, 6] # 一次指定多個變數需加上[]
puts z # 6
Available Scope 有效範圍
以區域變數為例子:
1. 將變數定義在 say_hello 方法裡:
1
2
3
4
5
6
def say_hello
name = "Viii"
puts "Hi, This is #{name}!"
end
say_hello # Hi, This is Viii!
puts name # undefined local variable or method `name' for main:Object (NameError)
line 6: 定義在 say_hello 方法裡的 name 變數,在離開 say_hello 方法就失效。
2. 將變數定義在外層:
1
2
3
4
5
6
name = "Viii"
def say_hello
puts "Hi, This is #{name}!" # undefined local variable or method `name' for main:Object (NameError)
end
puts name # Viii
say_hello
line 3: 定義在外層的變數 name,在 say_hello 方法裡找不到而失效。
參考資料:
➫ 變數、常數、流程控制、迴圈