2007年4月3日 星期二

爪哇人的Ruby(2)

Ruby的OO成分比Java更純,怎講呢?

Java的世界中,所有事物都是物件,只差了一點:Primitive Types(原生型態)

看看以下的程式吧:


Integer money = new Integer(10);
int moreMoney = 99999;

List listOfSaving = new ArrayList();

listOfSaving.add(money); // 成功
listOfSaving.add(moreMoney); // 失敗,因為moreMoney是Primitive Type不是物件


其實我個人也很習慣使用Primitive Type,原因有二:1. 符合C++使用者的習慣。 2. 增加一點點效能。

不過也付出一些代價:1. 程式碼變的比較醜,常常要使用到轉型。 2. JDK 5為解決程式碼醜的問題,引入了Auto Boxing機制,卻也帶來了更多麻煩(以後有空再來聊聊)。

Ruby中沒有原生型態這回事,任何在Ruby中出現的事物都是物件,事情變的比較單純了。

Ruby還提供了兩種在Java中沒有的OO機制:Meta Programming和Mix-In,這也是Ruby具有高生產力的密訣之一,這個就容我之後再講了。

沒有留言: