最近在學習 Ruby,稍微消化一下已經整理好的筆記,希望生出一系列教學文!
Table of Contents
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
套件連結:https://marketplace.visualstudio.com/items?itemName=wingrunr21.vscode-ruby
2.3 Ruby Solargraph
寫 Ruby 時這個套件可以支援 auto complete
套件連結:https://marketplace.visualstudio.com/items?itemName=castwide.solargraph
2.4 endwise
在 Ruby 中,method, loop, if 等等都是用 end 結尾,這個套件會自動幫你加上 end,免得忘記打上造成編譯錯誤:
套件連結: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
如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!