在Ruby中的變數,包括區域變數、全域變數、實例變數、類別變數以及常數。
變數會以小寫的字首開頭,而常數以大寫的字首開頭。
區域變數 - 小寫字首開頭;例如:amount
全域變數 - 比起區域變數,前面加上錢字號($);例如:$amount
實例變數 - 比起區域變數,前面加上@;例如:@amount
類別變數 - 比起區域變數,前面加上@@;例如:@@amount
常數 - 以大寫的字首開頭;例如:Amount
其中,全域變數($)以及實例變數(@)預設值為nil,其他均沒有預設值。
此外,在Ruby中還有虛擬變數,這些是內部定義的,內容不能被改變,例如:self、false、true…等。
變數命名法中主要以兩種形式,駝峰式(camelCase)或蛇形式(snake_case),
而在Ruby內是使用蛇形式(snake_case)。
駝峰式(camelCase) - 第二個單字後的第一個字皆為大寫,單字間沒有任何型態做區隔。
例如:
firstName
lastName
mathTestScore
蛇形式(snake_case) - 每個單字皆為小寫,每個空白以底線取代。
例如:
first_name
last_name
math_test_score
在Ruby的世界會用一個等號(=)表示指定的意思,會以兩個等號(==)表示是否相等,
例如:if a == b → 如果a和b相等,其中 a ==b 就會回傳 True 或 False。
單一變數指定:a = 1
指定多個變數: b, c, d = [1, 2, 3]
指定多個變數的時候,我們會藉由[ ] 表示成一個陣列的模式。
若不用陣列的形式,也是可以 b, c, d = 1, 2, 3
例如:x = x+2
當今天x = 1 時,如果做了第一次x = x+2,則現在 x 會等於3。
而在做第二次x = x+2時,則現在x會等於5。
x = x+2 在Ruby內其實也可以寫成 x+= 2
所以當第三次做x+= 2時,則會像在做x = x+2一樣,所以現在x會等於7。
所以其實 x = x+2 也可以寫成 x+= 2。
指定多個變數的時候,有時候在想或許有沒有更快好的方法可以指定。
例如 a = 1, b=2, c=[3,4,5]
原本可能要藉由 a, b, c = [1,2, [3,4,5]]
但藉由在變數前面放個星號()可以讓數量左右不同時的多重變數指定,最後一個變數吸收剩下所有的值。
變成 a, b, c =1, 2, 3, 4, 5