[Day04] 鬼之島戰役最大的變數!
今天會繼續探討 Ruby 裡的變數,昨天有講到變數跟國中數學課學到的 x 和 y 一樣,都是為了把值先存起來,會使用=
來為變數指定值。
a = 1
接下來,我們拿變數 a 來進行運算:
a = a + 2
puts a
3
在這裡的意思是把原有的變數 a
加上 2
,計算後會得到 3
,然後再把 3
重新指定給 a
,所以變數 a
的最後的值會是 3
另外 a = a + 2
這行也可以寫成:
a += 2
透過陣列甚至可以一次指定多個變數:
x, y, z = [1, 2, 3]
x => 1
y => 2
z => 3
假設有兩個變數 x 與 y ,如果要讓其對調,
可以利用另一個變數暫存:
x, y = [2, 3]
w = x
x = y
y = w
puts x
3
puts y
2
在 Ruby 的世界裡還可以這樣 #直接交換!
x, y = [2, 3]
x, y = y, x
puts x
3
puts y
2
通常在定義類別、或是模組時,會使用常數(Costant)作為名稱,但規定是要用大寫字母開頭。
Pi = 3.1415
在 Ruby 的世界裡,常數是可以被修改的(會發生警告,但是可以執行)
A = 1
A = 2
warning: already initialized constant A
warning: previous definition of A was here
=> 2
龍哥:「變數就像標籤,本身沒有型態。」
對於變數命名,Ruby 生態圈有著慣例優於設定(Convention over Configuration)
的不成文傳統,大家 coding 時普遍會遵循某一套撰寫風格。
以下介紹兩種常見的命名方式:
在 Java 和 JavaScript 較常看到這種寫法
例:firstName
, parseDataString1
所以我說那個蛇的部分?
Ruby 和 Python 較偏好使用這種命名風格
例:first_name
, parse_data_string
除此之外,還有一種被定義在 Ruby 內部的變數,稱做虛擬變數(Pseudo Variable),例如 nil
、self
、true
、false
這些都是,它們有著特別的用途以及固定的意義表示,無法被更動。
變數可以運用的場景其實遠遠不僅於此,
後面還會再說明如何搭配運算子以及方法的使用,還是那句老話:
「有人就有變數,有變數就有江湖,人,就是江湖。」 (誤)