Ruby 教學

Ruby 教學 1 – 環境架設及 Ruby 介紹

最近在學習 Ruby,稍微消化一下已經整理好的筆記,希望生出一系列教學文!

1. 使用 rbenv 安裝 Ruby

1.1 安裝 rbenv

rbenv 可以用來安裝及管理各版本的 Ruby。

$ brew install rbenv ruby-build

安裝完 rbenv 後需要初始化:

$ rbenv init

一些 rbenv 的筆記:

# 列出 Ruby 近期的主要版本
$ rbenv install -l

# 列出所有 Ruby 版本
$ rbenv install -L

1.2 安裝 Ruby

確定好要安裝的版本後,使用 rbenv 安裝 Ruby

$ rbenv install 3.1.2

rbenv 可以在本機上安裝多個 Ruby 版本,可以用以下指令查看目前已經安裝的 Ruby 版本:

$ rbenv versions

1.3 設定 Ruby 版本

下了 rbenv versions 後可以看到本機可能不只有剛安裝的版本,還會有系統預設的版本,因此需要指定版本為剛剛安裝的 Ruby 特定版本:

$ rbenv global 3.1.2

設定完成後可以用以下指令確認 global 的版本是否為剛剛設定的版本:

$ rbenv version
3.1.2 (set by /Users/jimmy/.rbenv/version)

同時也要確認 Ruby 的版本:

$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21]
如果 ruby -v 的版本和 global 不一樣,加以下兩行到 ~/.zshrc
(如果 shell 是使用 bash,則加到 ~/.bashrc)
 export PATH=$HOME/.rbenv/bin:$PATH
 export PATH=$HOME/.rbenv/shims:$PATH

2. VSCode 環境設置

個人習慣用 vscode 來寫 code,因此簡單介紹一下寫 Ruby 時可以安裝的輔助 plugin

2.1 Ruby

Ruby 的語言包

套件連結:https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby

2.2 VSCode Ruby

在 .rb 檔中 highlight syntax

Ruby 教學

套件連結:https://marketplace.visualstudio.com/items?itemName=wingrunr21.vscode-ruby

2.3 Ruby Solargraph

寫 Ruby 時這個套件可以支援 auto complete

Ruby 教學

套件連結:https://marketplace.visualstudio.com/items?itemName=castwide.solargraph

2.4 endwise

在 Ruby 中,method, loop, if 等等都是用 end 結尾,這個套件會自動幫你加上 end,免得忘記打上造成編譯錯誤:

Ruby 教學

套件連結:https://marketplace.visualstudio.com/items?itemName=kaiwood.endwise&ssr=false#overview

2.5 Code Runner

Code Runner 其實支援許多語言,Ruby 也是其中之一,我覺得可以用快捷鍵(control + option + N)快速編譯 Ruby 有時候滿方便的

套件連結:https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

2.6 在 vscode 執行 .rb

在 vscode 中寫完 code 後,可以直接在 terminal 編譯檔案得到結果:

# hello-world.rb
str = "Hello World"
p str

在 terminal 中執行:

$ ruby hello-world.rb
"Hello World"

就會執行這個 .rb 檔

3. Ruby 介紹

3.1 動態語言

Ruby 是動態語言,不需事先定義變數的型別:

str = "Hello World!"
number = 123

3.2 強型別

和 JavaScript 不同,Ruby 是強型別語言,也就是說當兩個變數型別不同時相加 Ruby 會報錯:

str1 = "Hello "
str2 = "World"
p str1 + str2
# "Hello World!"

number = 123
p str1 + number
# Error! no implicit conversion of Integer into String (TypeError)

3.3 OOP

Ruby 是 OOP – Object-Oriented Programming 物件導向的程式語言,也就是說在 Ruby 的世界中,幾乎所有的東西都由 object 構成,可以從每個 object 的 .class 得知這個 object 是由哪個 class new 出來的:

p "Hello".class
# String

p 123.class
# Integer

p [].class
# Array

4. 參考資料

Ruby Programming Language 中文官方網頁
Day 22: 使用 VS Code 來開發 Ruby & Rails
Learn to Code with Ruby

如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top