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可以輸入exitquit即可,平常要測試或練習一些指令的時候,可以利用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, printp,略有差異。

  • 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"]
相關文章