回 OPENHOME 首頁
語言技術:Ruby Gossip
Ruby inherited the Perl philosophy of having more than one way to do the same thing.
I inherited that philosophy from Larry Wall, who is my hero actually.
I want to make Ruby users free. I want to give them the freedom to choose.
People are different. People choose different criteria.
But if there is a better way among many alternatives, I want to encourage that way by making it comfortable.
So that's what I've tried to do.
The Philosophy of Ruby, by Yukihiro Matsumoto
文件基於 Ruby 1.9.2 撰寫
起步走
從一些簡單的語法與型態開始,了解 Ruby 內建特性,這已經足夠讓你作不少運算了。
基本指令與觀念
指令互動環境可隨時測試小程式,基本輸出入可了解如何與程式互 動並儲存結果。
irb 與 ruby 指令
load 與 require
基本輸入輸出
內建型態與操作
常用的物件為語法內建,初學者面對編碼可別混亂。
數值型態
字串型態
關於編碼
符號型態
陣列型態
雜湊型態
範圍型態
變數、操作與物件
所 有資料都是物件,+、-、*、/都是方法,訊息觀念為 Ruby 特色。
變數
操作方法
淺談物件、訊息與方法
流程控制
Ruby 擁有彈性的流程語法,特有的區塊觀念。
if 與 unless
while、until、loop 與 for
case...when...else
begin...rescue...ensure
方法、類別與模組
封裝演算、定義物件行為、組織程式元件。
方法
def 定義方法,可接收引數與程式區塊。
def 定義方法
迭代器與程式區塊
變數範圍
類別
是物件的共同定義,單例方法其實也有個匿名單例類別。
定義類別
特殊方法定義
單例方法、實例方法、類別方法
類別變數
關於 self
建構、初始與消滅
使用繼承
抽象類別與介面
物件相等性
模組
可抽離共通的功能實作,類別可動態地含括(include)模 組功能。
定義模組
堆疊擴充
再看變數範圍
再看 self
方法查找順序
進階議題
一些知道會更好的東西。
類別
類別是 Class 實例,Class 本身是類別,Object 上頭還有 BasicObject。
關於 Class
匿名單例類別
BasicObject
檢視物件
可執行物件
程式區塊不是 Proc,lambda 是 Proc 實例,必要時可將方法包裝為 Method 實例。
程式區塊與 Proc
使用 lambda
取得 Method
方法
還有一些方便的方法。
inherited、 included、extended 方法
*_missing、*method_added 方法
*eval 方法
參考資料
The Philosophy of Ruby
Ruby 1.9: It works!
Ruby Styleguide
RubyGems Guides