Ruby教學 - 基本語法
1. 如何執行Ruby
Ruby有以下三種方式可以執行Ruby指令
1.1 建立Ruby程式檔案
最基本的方式當然是建立Ruby的檔案,將程式撰寫在檔案中後執行,Ruby的程式檔案使用.rb作為副檔名,例如我們建立一個hello_world.rb如下:
puts "Hello, World!"
接著利用Ruby指令執行程式:
$ ruby hello_world.rb
執行結果
Hello, World!
在Unix環境下希望他可以直接執行的話,將檔案權限改為可執行,並加上shebang line宣告使用ruby來執行,如同其他程式語言一樣:
$ chmod 755 hello_world.rb
並將hello_world.rb改為
#!/usr/bin/ruby puts "Hello, World!"
之後可直接執行
$ ./hello_world.rb
1.2 使用Interactive Ruby介面
Ruby另外提供了一支程式叫irb,意即Interactive Ruby,就是可以互動式地執行Ruby指令,直接執行irb就可以進入該介面:
$ irb
會看到如下的畫面
2.1.1 :001 >
接著就可以開始輸入Ruby程式:
2.1.1 :001 > puts "Hello, World!" Hello, World! => nil 2.1.1 :002 >
如果想離開irb可以輸入exit或quit即可,平常要測試或練習一些指令的時候,可以利用irb快速的執行與驗證。
另外,在預設情況下會顯示Ruby版本和執行行號,如果不想要顯示,可以加上參數--simple-prompt:
$ irb --simple-prompt
就只會看到
>>
1.3 使用One-liner
最後一個方法一樣是使用Ruby的指令,另用參數-e帶入ruby程式字串來執行,其中e表示evaluate:
$ ruby -e "puts 'Hello, World'"
這個用法被稱為One-liner。
2. 註解
Ruby中有兩種註解方式。
2.1 單行註解
單行註解使用井號(#)開始,後面的部分為註解直到該行結束,
# 單行註解:井號後面的部份將不會處理。
2.2 多行註解
多行註解使用=begin和=end包夾註解內容,必須是在該行開頭
=begin 多行註解:註解中間的部份將不會處理。 =end
3. 編碼
Ruby 2.0之前預設使用US-ASCII,所以在程式中如果出現中文字之類的字元將會出錯,例如將hello_world.rb改成:
puts "哈囉, 世界!"
執行結果
hello_world.rb:1: invalid multibyte char (US-ASCII) hello_world.rb:1: invalid multibyte char (US-ASCII)
這時必須在程式最開頭加上特殊的註解來進行編碼宣告
#encoding: UTF-8
執行結果
哈囉, 世界!
Ruby實際上檢查的是coding:xxx的格式來作為編碼的判斷,所以以下的寫法都會成功判斷為UTF-8
# coding: UTF-8 # this coding:UTF-8, it is multiple bytes
不過一般習慣使用encoding來宣告。
如果已經升級到Ruby 2.0之後的版本預設已經是UTF-8,所以就不會有這個問題了。
4. 函式呼叫
Ruby的函式呼叫括號可以省略,所以像上面的Hello World程式,下面兩種寫法都是可以的:
puts "Hello, World!" puts("Hello, World!")
單一指令的時候通常會省略括號。
5. 輸出指令
Ruby提供三種不同的輸出指令puts, print和p,略有差異。
- puts: 將參數執行to_s之後輸出(但陣列型別會做逐一取出的動作),結尾斷行
- print: 將參數執行to_s之後輸出,結尾不斷行
- p: 將參數執行inspect之後輸出,結尾斷行(相當於puts xxx.inspect)
例如:
puts :Hello print :Hello p :Hello
結果
Hello Hello:Hello
輸入陣列的時候
a = ["Hello", "World"] puts a print a p a
結果
Hello World ["Hello", "World"]["Hello", "World"]