Ruby 程式語言入門 - 安裝運行環境

之所以開始著手寫這個系列是因為想學Ruby on Rails,但是在學Ruby on Rails之前必須先了解Ruby,那就邊學習邊作筆記順便寫成文章,若學習過程中遇到的任何困難處也可以分享出來給更多的初學者,以避開一些坑,那麼今天要教的是Ruby的環境安裝,保證無論是否有程式基礎的人都可以輕鬆學會(只要你有過使用電腦的經驗...),那麼廢話不多說直接開始吧。

何謂Ruby?

•開放源碼、物件導向的動態直譯式(interpreted)程式語⾔
•簡單哲學、⾼生產力
•精巧、⾃然的語法
•創造者 Yukihiro Matsumoto, a.k.a. Matz
  •靈感來來⾃自 Lisp, Perl, 和 Smalltalk

Ruby 是動態強分型語⾔:

•動態 Dynamic v.s. 靜態 Static typing
•Ruby/Perl/Python/PHP v.s. Java/C/C++

•強 Strong v.s. 弱 Weak typing
•Ruby/Perl/Python/Java v.s. PHP/C/C++
ihower-ruby-intro

錯誤
"test" + 1
原因:整數跟字串無法加在一起

正確

  • 1 + 2
  • "test" + "demo"

什麼是直譯式語言(interpretive)?

是一種程式語言類型。這種類型的程式語言,會將程式碼一句一句直接執行,不需要像編譯語言(Compiled language)一樣,經過編譯器先行編譯為機器碼,之後再執行。這種程式語言需要利用直譯器,在執行期,動態將程式碼逐句直譯(interpret)為機器碼,或是已經預先編譯為機器碼的的子程式,之後再執行。

Walk Out 技術共筆

直譯語言列表:
BASIC、LISP、Perl、Python、Ruby、JavaScript、PHP、R...

Ruby安裝

由於我是Windows10 x64,故之後所有的文章都是以Win10作為示範,若你是Linux或macOS系統可以使用第三方工具rbenv或RVM安裝。
目前最新的穩定版本是2.6.5。


這邊提醒一下,建議下載Ruby+Devkit版本,原因如下:

Ruby 2.4.0及更高版本使用MSYS2工具鏈作為開發套件。它作為可選組件捆綁到Ruby + Devkit安裝程序版本中,因此不需要其他下載/安裝。使用不帶Devkit版本的Ruby時,可以通過運行單獨安裝MSYS2 Devkit ridk install。
MSYS2是構建Ruby的本機C / C ++擴展所必需的,而Ruby on Rails則是必需的。而且,它允許下載和使用Ruby gems可以依賴的數百個開源庫。

安裝好之後進行安裝,傻瓜式安裝步驟不做演示,記得勾選把Ruby執行檔的位置加到系統的環境變數中。


安裝Finish之後會自動幫你安裝MSYS2,安裝過程全程ENTER即可。

全部安裝完畢之後打開命令提示字元(cmd)輸入ruby -v測試一下安裝結果。

至此為止,Ruby執行環境已經成功安裝。

PS.不知道什麼是cmd的話可以參考這篇文章命令提示字元 01:基本常識

如何執行Ruby程式?

執行Ruby的方式可以參考下圖(圖片來源Joey Chen)

注:終端機是Linux系統的叫法,和Windows系統的命令提示字元是一樣的東西。

Ruby 的程式很多是在非圖形介面下執行,大多是終端機環境,常見有幾種方式:

1.單行程式

可以直接在終端機輸入

ruby -e "puts 'Hello World'"

2.存成檔案

程式碼通常不會只有一行,於是把程式碼存成一個檔案,副檔名為.rb

#hello.rb
puts "Hello World"

3.IRB

Ruby內建的Interactive Ruby互動介面可以讓你輸入即見效果

$ irb
>> puts "Hello World"
Hello World
=> nil

nil 代表「本次執行結果的回傳值」,會出現 nil 是因為 puts 方法本身並沒有回傳值。

像這樣的環境我們又稱之 REPL(Read-Eval-Print Loop)。

撰寫及執行第一支Ruby程式

打開編輯器,或是最基本的記事本,輸入指令puts "Hello World"並存成.rb副檔,打開cmd指向rb檔的位置,並輸入ruby 檔名.rb執行剛剛的程式。

Interactive Ruby是什麼?

在本地搜索Ruby可以搜索到Interactive Ruby,這是Ruby的指令互動環境,初學者只要知道這是可以讓你即時看到執行 Ruby 敘述的結果的程式就行。

輸入puts "Hello World"輸出Hello World。

puts 是 Ruby 的基本輸出指令。
=> nil代表本次執行結果的回傳值。
puts 總是回傳 nil,nil 在 Ruby 中表示一個絕對的空值,因為 puts 方法本身並沒有回傳值。

關於irb與ruby可以參考這篇文章:https://openhome.cc/Gossip/Ruby/IrbRubyUtility.html

推薦Ruby學習網站