作者PsMonkey (痞子軍團團長)
站內Ruby
標題Re: [分享] 另一個 Parallel Assignment 玩法
時間Wed May 24 14:34:54 2006
※ 引述《giive (lala)》之銘言:
: 所以答案很明顯了
: Ruby只不過是 return prarllel 時,將 return值轉成 Array
: 其實他還是只回傳一個 Array Object
: 並沒有使用嶄新的設計
: 但是就算是這樣
: 也遠遠的比其他 Language 來得方便跟簡潔
先說,我沒碰過 Ruby
JDK 5.0 的 autoboxing 跟泛型,我目前也還只是看看而已
(不過,好像跟這個議題也還有點距離)
所以看官們要從上頭兩點來批我的文章
請隨意,越大力越好
(喔~~~ 再大力點~ 我還要~~~)
同樣的功能(反正 Ruby 也是用 Object Array)
那我也可以在 Java 這樣子搞
Object[] aParallelMethod(){
java.util.Vector v = new Vector();
//倒入要回傳的值
v.add(...);
//
Object[] result = new Object[v.size()];
return result;
}
雖然看起來還是比這篇文章的範例囉唆... [茶]
不過,這不是我的重點...
以 Coding 初期的角度
方便 & 簡潔是個優點
我自己在寫 Java 的時候
常常因為要包那種回傳值物件,而有點厭煩
(而且這種物件的 reuseable 其實都有點低...)
問題是,離開初期 Coding 之後
我今天面對一個 function or method
我怎麼知道他回傳的東西是什麼?
單純看上面的例子,似乎是不太可能知道
回傳 Array 當中各個 element 的 data type
(Java 當中有 reflect 機制可以幫忙這一點
可是不太可能用在 coding 的時候來處理這樣子的問題)
當然,製作文件是一個解決方式
可是,傳統囉唆的方式,以 Java 來說
如果搭配 IDE 的程式碼協助下(不要顯示 Javadoc 也沒差)
我可以在幾乎不用翻 API 的前提下
就可以繼續 coding 下去,不用擔心型態記錯
耶... 說完了...
茶跟小點心也準備好了...
--
侃侃長論鮮窒礙 網站:
http://www.psmonkey.idv.tw
眾目睽睽無心顫 個人版:telnet://legend.twbbs.org
煢居少聊常人事
殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.204.16.17
推 yalight:拿 IDE 來評論就不太公平了.. Java 這方面真的是麻煩, 05/24 17:13
→ yalight:只為了傳回多個數值在程式裡面要一直 new, 看到就令人冒汗 05/24 17:16
→ yalight:而且傳回一個 Object[] 分不出型別, 那就相當於在程式中 05/24 17:17
→ yalight:必須確保放今都是相同的型別, 要不然就加入一些變數來辨認 05/24 17:19
→ yalight:型別是什麼?? 的確太囉唆了點, 用 reflection 就更囉唆了 05/24 17:20
→ yalight:Java1.5 的泛型也只提供能自動幫我們轉型的功能, 不能放任 05/24 17:22
→ yalight:意的物件, 為什麼array 只能同一種型別的東西?沒什麼道理 05/24 17:25
→ yalight:Ruby 裡每個物件都有class這個成員變數可以得知物件的型別 05/24 17:27
→ yalight:我覺得有點類似 C++ 的 RTTI(real time type identify), 05/24 17:28
→ yalight:當然好的程式這些還是不夠, 好的文件和註解也是必要的..XD 05/24 17:29
→ yalight:如果有說錯 請見諒 m(_ _)m Ruby不熟...orz 05/24 17:30
→ yalight:阿 是 RTTI 是 runtime type identify...orz 05/24 17:57