论坛首页 综合技术论坛

付出太多,得到太少 - 闲谈函数返回值

浏览 17572 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-27  
LUA语言可以http://forum.tohack.com/thread-153-1-1.html

一个函数返回多个值,我不记得是不是Fowler的分析模式里讨论过这个问题,但确实是Folwer写的书里提过
0 请登录后投票
   发表时间:2008-10-04  
难道世上还有返回多个值的函数?
我读书少,你别骗我
0 请登录后投票
   发表时间:2008-10-04  
D中的Tuples可以定义一系列的类型.感觉可以满足你的要求.

alias Tuple!(int, long) TL;

TL foo(int v,int b)
{
  
}
0 请登录后投票
   发表时间:2008-11-05  
liusong1111 写道

我的问题是:函数返回值太单一

可以返回组装对象
可以返回集合
0 请登录后投票
   发表时间:2008-11-13   最后修改:2008-11-13
许多人都没有理解lz的意思就急于否定lz。这种作风是很不好的。


讨论正题:
一般而言,返回tuple是一个方法。对于静态类型语言,隐式类型转换能帮助把程序弄得更好看一点。
不过实践上,返回值的pattern match或许必要性不大,而且同一个方法名根据情况返回两种不同类型的值可能会令人费解(如perl为许多人所诟病),衡量下来也许只要支持比较有用的几种,例如返回boolean和扔出异常就可以了。

如果是这样,那通过符号辅助来做一些syntax sugar也许就够用了。
比如将assignTask?解释为assignTask != null
将assignTask!解释为if (assignTask == null) throw NPE;
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics