書接上回,前一篇我們在全平臺構建好了Ruby3的開發環境,現在,可以和Ruby3第一次親密接觸了。
Ruby是一門在物件導向層面無所不用其極的解釋型程式語言。
我們可以把編寫Ruby程式碼看作是一場行為上的藝術,編碼就像跳舞一樣,Ruby的每一步都很優雅,幾乎沒有一步是多餘的。
第一行程式碼
進入系統的irb終端,輸入第一行程式碼:
irb(main):001:0> puts "你好 Ruby!"
你好 Ruby!
=> nil
puts關鍵字是 Ruby 語言裡用來列印的基本命令。第三行輸出的nil 是什麼?其實是puts命令的返回值, puts命令永遠返回 nil,nil也是 Ruby 的空值,可以理解為Python中的None關鍵字。
Ruby同時提供了一個更簡單的輸出物件內容的方法:p
irb(main):002:0> p "你好 Ruby!"
"你好 Ruby!"
=> "你好 Ruby!"
puts方法輸出數值 1 和字串 "1"時,結果都只是單純的 1。這樣一來,我們就無法判斷輸出的結果到底是屬於哪個物件。此種種情況下,p方法可以很好地解決這個問題。使用 p方法時,數值結果和字串結果會以不同的形式輸出:
irb(main):003:0> puts "1"
1
=> nil
irb(main):004:0> puts 1
1
=> nil
irb(main):005:0> p "1"
"1"
=> "1"
irb(main):006:0> p 1
1
=> 1
irb(main):007:0>
藉此,編碼過程中我們可以透過p方法快速列印一個變數並且知曉其資料型別。
和Python一樣,Ruby3也具有print方法:
irb(main):007:0> print "你好","Ruby"
你好Ruby=> nil
irb(main):008:0> puts "你好","Ruby"
你好
Ruby
=> nil
print方法與puts方法和p方法稍有區別,puts方法在輸出結果的末尾一定會輸出換行符,而print方法則不會,由此,我們可以將print方法理解為省略換行的puts方法,在列印多個變數時,新增換行的puts方法無疑更友好。
單引號和雙引號
Ruby3的字串物件生成有兩種方式,字串文字值加單引號或加雙引號。 兩種方式主要區別在於構造文字量時,對字串的處理次數不同。 單引號時,Ruby對字串值不做處理,裡邊是什麼就是什麼。 雙引號時,Ruby首先要查詢文字中要替換的字元,即帶反斜槓的字元,用二進位制替換。
irb(main):011:0> puts "你好 \n Ruby"
你好
Ruby
=> nil
irb(main):012:0> puts '你好 \n Ruby'
你好 \n Ruby
=> nil
也可以理解為單引號是原樣輸出,而雙引號則會替換為變數實體。
空白字元
和Python不同的是,空格和製表符之類的空格字元通常在Ruby3程式碼中會被忽略,除非它們出現在字串中。但是,有時它們被用來解釋模稜兩可的陳述。啟用-w選項時,此類解釋會產生警告:
irb(main):013:0> puts '你好 \n Ruby', "前面好多空格"
你好 \n Ruby
前面好多空格
=> nil
長字串
Ruby也可以多行構建字串。在 << 之後,可以指定字串或識別符號以終止字串文字,並且當前行之後直至終止符的所有行都是字串的值。如果用引號引起來,則引號的型別確定面向行的字串文字的型別。注意,<< 和終止符之間不能有空格:
irb(main):035:0" puts <<"EOF"
irb(main):036:0" 第一行
irb(main):037:0" 第二行
irb(main):038:0> EOF
第一行
第二行
=> nil
irb(main):039:0>
BEGIN和END語句
Ruby可以在程式中宣告BEGIN作為初始執行的邏輯以及END作為程式結束時執行的邏輯:
puts "這是主執行緒Ruby3程式"
END {
puts "Ruby3程式結束"
}
BEGIN {
puts "Ruby3程式開始"
}
程式碼註釋
註釋可以在Ruby直譯器中隱藏一行,一行的一部分或幾行,作為不執行的程式碼,可以在行的開頭使用井號(#)
irb(main):069:0* # 我是一個註釋。忽略我。
irb(main):070:0*
註釋也可以在語句或表示式後的同一行上:
irb(main):070:0> name = "v3u.cn" # 這又是一個註釋
=> "v3u.cn"
irb(main):071:0>
也可以透過使用=begin/=end從Ruby3直譯器中隱藏了多行程式碼:
=begin
這是一條註釋。
這也是註釋。
這也是註釋。
這還是註釋。
=end
編輯器(Vscode)
如果厭倦了在irb命令列中編寫Ruby程式碼,我們也可以在編輯器中隨心所欲地編寫,這裡推薦微軟開源的Vscode編輯器,下載地址:https://code.visualstudio.com/
安裝好之後,只需要安裝ruby外掛即可:
隨後編寫test.rb檔案:
puts "你好,Vscode"
右鍵執行Ruby指令碼:
簡單方便,開箱可用。
結語
Ruby可以以最少的程式碼量解決問題,又不失可讀性,優雅而又不乏實用,如果你有夢想,就一定看得到這顆紅寶石和夢中的一樣動人妖嬈。