看板 Ruby 關於我們 聯絡資訊
※ 引述《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