# 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
print <<EOF
This is the first way of creating
here document ie. multiple line string.
EOF
print <<"EOF"; # 與上面相同
This is the second way of creating
here document ie. multiple line string.
EOF
print <<`EOC` # 執行命令
echo hi there
echo lo there
EOC
print <<"foo", <<"bar" # 您可以把它們進行堆疊
I said foo.
foo
I said bar.
bar
```
這將產生以下結果:
```
This is the first way of creating
her document ie. multiple line string.
This is the second way of creating
her document ie. multiple line string.
hi there
lo there
I said foo.
I said bar.
```
## Ruby _BEGIN_ 語句
### 語法
```
BEGIN {
code
}
```
聲明 _code_ 會在程序運行之前被調用。
### 實例
```
#!/usr/bin/ruby
puts "This is main Ruby Program"
BEGIN {
puts "Initializing Ruby Program"
}
```
這將產生以下結果:
```
Initializing Ruby Program
This is main Ruby Program
```
## Ruby _END_ 語句
### 語法
```
END {
code
}
```
聲明 _code_ 會在程序的結尾被調用。
### 實例
```
#!/usr/bin/ruby
puts "This is main Ruby Program"
END {
puts "Terminating Ruby Program"
}
BEGIN {
puts "Initializing Ruby Program"
}
```
這將產生以下結果:
```
Initializing Ruby Program
This is main Ruby Program
Terminating Ruby Program
```
## Ruby 注釋
注釋會對 Ruby 解釋器隱藏一行,或者一行的一部分,或者若干行。您可以在行首使用字符( # ):
```
# 我是注釋,請忽略我。
```
或者,注釋可以跟著語句或表達式的同一行的后面:
```
name = "Madisetti" # 這也是注釋
```
您可以注釋多行,如下所示:
```
# 這是注釋。
# 這也是注釋。
# 這也是注釋。
# 這還是注釋。
```
下面是另一種形式。這種塊注釋會對解釋器隱藏 =begin/=end 之間的行:
```
=begin
這是注釋。
這也是注釋。
這也是注釋。
這還是注釋。
=end
```
- Ruby 基礎
- Ruby 簡介
- Ruby 環境
- Ruby 安裝 - Unix
- Ruby 安裝 - Windows
- Ruby 命令行選項
- Ruby 環境變量
- Ruby 語法
- Ruby 數據類型
- Ruby 類和對象
- Ruby 類案例
- Ruby 變量
- Ruby 運算符
- Ruby 注釋
- Ruby 判斷
- Ruby 循環
- Ruby 方法
- Ruby 塊
- Ruby 模塊(Module)
- Ruby 字符串(String)
- Ruby 數組(Array)
- Ruby 哈希(Hash)
- Ruby 日期 & 時間(Date & Time)
- Ruby 范圍(Range)
- Ruby 迭代器
- Ruby 文件的輸入與輸出
- Ruby File 類和方法
- Ruby Dir 類和方法
- Ruby 異常
- Ruby 高級
- Ruby 面向對象
- Ruby 正則表達式
- Ruby 數據庫訪問 - DBI 教程
- Ruby CGI 編程
- Ruby CGI方法
- Ruby CGI Cookies
- Ruby CGI Sessions
- Ruby 發送郵件 - SMATP
- Ruby Socket 編程
- Ruby XML, XSLT 和 XPath 教程
- Ruby Web Services 應用 - SOAP4R
- Ruby 多線程
- 免責聲明