原创  函数的返回值为什么只能有一个? 收藏

先声明,我知道有办法让函数的返回值有多个,比如返回数组或者对象。我也没说返回数组或者对象一定不好,在有些情况下,这么做是很合适的。

我这里说的一个是正常情况下,函数的声明里,只允许我们定义一个返回值,而且还没有名字(因为只有一个,所以不需要名字)。为什么输入参数就能有多个,还有名字,明显的不公平!

我们很多时候不想因为返回值超过1个而定义类,那会显得笨重。所以,我们选择返回数组,或者hashtable之类,但我觉得这个办法还是有点麻烦。

实际工作中,我们常常有需要有多个返回值的情况,就跟我们需要多个输入参数一样。
比如,一个解析url的函数,返回值是protocal://host:port/path,一共有四部分。也用数组返回就不够方便了。

所以,我希望返回值的这个问题能得到语言开发者的重视,让多返回值在语言级别得到支持。
比如用下列的格式声明函数:
function (String protocal, String host, int port, String path) parseUrl(String url)
调用的时候:(String protocal, String host, int port, String path) = parseUrl("http://somedomain.com:8080/abc.html");

我认为这样的方式比返回数组方式要简洁明了:
Object[] rslt = parseUrl("....");
String protocal = rslt[0].toString();
String host = rslt[1].toString();
int port = Integer.parse(rslt[2],10);

可惜,我好像目前为止没看到哪个新一点的语言里有考虑这个问题的。以后得向python,ruby这些的mailinglist反映反映。

发表于 @ 2008年10月17日 10:30:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:夸平台的秘密:字符串 | 新一篇:《sliverlight揭秘》

  • 发表评论
  • 评论内容:
  •  
Copyright © jackhatedance
Powered by CSDN Blog