锁定老帖子 主题:付出太多,得到太少 - 闲谈函数返回值
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-27
LUA语言可以http://forum.tohack.com/thread-153-1-1.html
一个函数返回多个值,我不记得是不是Fowler的分析模式里讨论过这个问题,但确实是Folwer写的书里提过 |
|
返回顶楼 | |
发表时间:2008-10-04
难道世上还有返回多个值的函数?
我读书少,你别骗我 |
|
返回顶楼 | |
发表时间:2008-10-04
D中的Tuples可以定义一系列的类型.感觉可以满足你的要求.
alias Tuple!(int, long) TL; TL foo(int v,int b) { } |
|
返回顶楼 | |
发表时间:2008-11-05
liusong1111 写道 我的问题是:函数返回值太单一。 可以返回组装对象 可以返回集合 |
|
返回顶楼 | |
发表时间:2008-11-13
最后修改:2008-11-13
许多人都没有理解lz的意思就急于否定lz。这种作风是很不好的。
讨论正题: 一般而言,返回tuple是一个方法。对于静态类型语言,隐式类型转换能帮助把程序弄得更好看一点。 不过实践上,返回值的pattern match或许必要性不大,而且同一个方法名根据情况返回两种不同类型的值可能会令人费解(如perl为许多人所诟病),衡量下来也许只要支持比较有用的几种,例如返回boolean和扔出异常就可以了。 如果是这样,那通过符号辅助来做一些syntax sugar也许就够用了。 比如将assignTask?解释为assignTask != null 将assignTask!解释为if (assignTask == null) throw NPE; |
|
返回顶楼 | |