若您曾經(jīng)“想要一種簡單的面向?qū)ο蟮恼Z言”,或者認(rèn)為“Perl的功能雖然好用,但它的語法真讓人受不了”,又或者覺得“l(fā)isp系列語言的思想不錯(cuò),但到處都是括號(hào)真讓人討厭,最起碼算式應(yīng)該按照通常的樣式書寫”。那么,Ruby或許能讓您滿意。
歸納以來,Ruby有以下優(yōu)點(diǎn)。
- 解釋器
- Ruby是解釋型語言,其程序無需編譯即可輕松執(zhí)行。
- 變量無類型
- Ruby的變量沒有類型,因此不必為靜態(tài)的類型匹配而煩惱。相應(yīng)地,錯(cuò)誤檢查功能也變?nèi)趿恕?/FONT>
- 不需要變量聲明
- 所有變量均無需聲明即可立即使用。另外,從變量名即可判斷出是何種變量(局部變量,全局變量,實(shí)例變量)。
- 語法簡單
- 語法比較簡單,類似Algol系語法。
- 不需要內(nèi)存管理
- 具有垃圾回收(Garbage Collect,GC)功能,能自動(dòng)回收不再使用的對(duì)象。
- 一切都是對(duì)象
- Ruby從一開始就被設(shè)計(jì)成純粹的面向?qū)ο笳Z言,因此以整數(shù)等基本數(shù)據(jù)類型為首的所有東西都是對(duì)象,它們都有發(fā)送信息的統(tǒng)一接口。(這方面連Java都不如Ruby)
- 類,繼承,方法
- Ruby當(dāng)然具有面向?qū)ο笳Z言的基本功能。
- 特殊方法
- 可向某對(duì)象添加方法。例如,可以把GUI按鈕被按下時(shí)的動(dòng)作作為方法記述下來,還可以用它來進(jìn)行原型庫(prototypebase)的面向?qū)ο缶幊蹋ㄓ腥诉@么干吧)。
- 用模塊進(jìn)行混合插入(Mixin)
- Ruby故意舍棄了多重繼承,但擁有混合插入功能。使用模塊來超越類的界限來共享數(shù)據(jù)和方法等。
- 迭代器
- 該功能可以將循環(huán)抽象化。
- 閉包
- 可以將某過程片段對(duì)象化。對(duì)象化后的該過程片段就稱作閉包。
- 功能強(qiáng)大的字符串操作/正則表達(dá)式
- 以Perl為樣板創(chuàng)造出了功能強(qiáng)大的字符串操作和正則表達(dá)式檢索功能。
- 擁有超長整數(shù)
- 添加超長整數(shù)功能后,可以計(jì)算非常大的整數(shù)。例如計(jì)算400的階乘也輕而易舉。
- 具有錯(cuò)誤處理功能
- 錯(cuò)誤處理功能可以使您編寫代碼處理出錯(cuò)情況。
- 可以直接訪問OS
- Ruby可以使用(UNIX的)絕大部分的系統(tǒng)調(diào)用。單獨(dú)使用Ruby也可以進(jìn)行系統(tǒng)編程。
- 動(dòng)態(tài)加載
- 若OS支持的話,可以在運(yùn)行時(shí)讀入對(duì)象文件。
但Ruby也有下列缺點(diǎn)。
- 因?yàn)镽uby是解釋型語言,所以速度較慢
- 靜態(tài)檢查比較少