动态

详情 返回 返回

紅袖添香,絕代妖嬈,Ruby語言基礎入門教程之Ruby3基礎語法,第一次親密接觸EP01 - 动态 详情

書接上回,前一篇我們在全平台構建好了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可以以最少的代碼量解決問題,又不失可讀性,優雅而又不乏實用,如果你有夢想,就一定看得到這顆紅寶石和夢中的一樣動人妖嬈。

user avatar haohaodehao 头像 hubert-style 头像 minisayo 头像 jzgw 头像 liam-i 头像
点赞 5 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.