編寫一個簡單的Ruby語言
讓我們編寫一個簡單的 Ruby 程式。所有的 Ruby 副檔名都是.rb。所以,把下面的原始碼放在 test.rb 檔案中。
#!/usr/bin/ruby -w puts "Hello, Ruby!";
在這裡,假設您的 /usr/bin 目錄下已經有可用的 Ruby 直譯器。現在,嘗試執行這個程式,如下所示:
$ ruby test.rb
這將會產生下面的結果:
Hello, Ruby!
您已經看到了一個簡單的 Ruby 程式,現在讓我們看看一些 Ruby 語法相關的基本概念:
Ruby 程式中的空白
在 Ruby 程式碼中的空白字元,如空格和製表符一般會被忽略,除非當它們出現在字串中時才不會被忽略。然而,有時候它們用於解釋模稜兩可的語句。當啟用 -w 選項時,這種解釋會產生警告。
例項:
a + b 被解釋為 a+b (這是一個區域性變數) a +b 被解釋為 a(+b) (這是一個方法呼叫)
Ruby 程式中的行尾
Ruby 把分號和換行符解釋為語句的結尾。但是,如果 Ruby 在行尾遇到運算子,比如 +、- 或反斜槓,它們表示一個語句的延續。
Ruby 識別符號
識別符號是變數、常量和方法的名稱。Ruby 識別符號是大小寫敏感的。這意味著 Ram 和 RAM 在 Ruby 中是兩個不同的識別符號。
Ruby 識別符號的名稱可以包含字母、數字和下劃線字元( _ )。
保留字
下表列出了 Ruby 中的保留字。這些保留字不能作為常量或變數的名稱。但是,它們可以作為方法名。
BEGIN | do | next | then |
END | else | nil | true |
alias | elsif | not | undef |
and | end | or | unless |
begin | ensure | redo | until |
break | false | rescue | when |
case | for | retry | while |
class | if | return | while |
def | in | self | __FILE__ |
defined? | module | super | __LINE__ |
Ruby 中的 Here Document
"Here Document" 是指建立多行字串。在 << 之後,您可以指定一個字串或識別符號來終止字串,且當前行之後直到終止符為止的所有行是字串的值。
如果終止符用引號括起,引號的型別決定了面向行的字串型別。請注意<< 和終止符之間必須沒有空格。
下面是不同的例項:
#!/usr/bin/ruby -w # -*- coding : utf-8 -*- print <<EOF 這是第一種方式建立here document 。 多行字串。 EOF print <<"EOF"; # 與上面相同 這是第二種方式建立here document 。 多行字串。 EOF print <<`EOC` # 執行命令 echo hi there echo lo there EOC print <<"foo", <<"bar" # 您可以把它們進行堆疊 I said foo. foo I said bar. bar
這將產生以下結果:
這是第一種方式建立here document 。 多行字串。 這是第二種方式建立here document 。 多行字串。 hi there lo there I said foo. I said bar.
RubyBEGIN語句
語法
BEGIN { code }
宣告code會在程式執行之前被呼叫。
例項
#!/usr/bin/ruby puts "這是主 Ruby 程式" BEGIN { puts "初始化 Ruby 程式" }
這將產生以下結果:
初始化 Ruby 程式 這是主 Ruby 程式
RubyEND語句
語法
END { code }
宣告code會在程式的結尾被呼叫。
#!/usr/bin/ruby puts "這是主 Ruby 程式" END { puts "停止 Ruby 程式" } BEGIN { puts "初始化 Ruby 程式" }
這將產生以下結果:
初始化 Ruby 程式 這是主 Ruby 程式 停止 Ruby 程式
Ruby 註釋
註釋會對 Ruby 直譯器隱藏一行,或者一行的一部分,或者若干行。您可以在行首使用字元( # ):
# 我是註釋,請忽略我。或者,註釋可以跟著語句或表示式的同一行的後面:
name = "Madisetti" # 這也是註釋您可以註釋多行,如下所示:
# 這是註釋。 # 這也是註釋。 # 這也是註釋。 # 這還是註釋。下面是另一種形式。這種塊註釋會對直譯器隱藏 =begin/=end 之間的行:
=begin 這是註釋。 這也是註釋。 這也是註釋。 這還是註釋。 =end