1. 程式人生 > 實用技巧 >編寫一個簡單的Ruby語言

編寫一個簡單的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