作者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
1F:推 yalight:拿 IDE 来评论就不太公平了.. Java 这方面真的是麻烦, 05/24 17:13
2F:→ yalight:只为了传回多个数值在程式里面要一直 new, 看到就令人冒汗 05/24 17:16
3F:→ yalight:而且传回一个 Object[] 分不出型别, 那就相当於在程式中 05/24 17:17
4F:→ yalight:必须确保放今都是相同的型别, 要不然就加入一些变数来辨认 05/24 17:19
5F:→ yalight:型别是什麽?? 的确太罗唆了点, 用 reflection 就更罗唆了 05/24 17:20
6F:→ yalight:Java1.5 的泛型也只提供能自动帮我们转型的功能, 不能放任 05/24 17:22
7F:→ yalight:意的物件, 为什麽array 只能同一种型别的东西?没什麽道理 05/24 17:25
8F:→ yalight:Ruby 里每个物件都有class这个成员变数可以得知物件的型别 05/24 17:27
9F:→ yalight:我觉得有点类似 C++ 的 RTTI(real time type identify), 05/24 17:28
10F:→ yalight:当然好的程式这些还是不够, 好的文件和注解也是必要的..XD 05/24 17:29
11F:→ yalight:如果有说错 请见谅 m(_ _)m Ruby不熟...orz 05/24 17:30
12F:→ yalight:阿 是 RTTI 是 runtime type identify...orz 05/24 17:57