Blogn - 记录个人历史 Ver 3.0.0
http://www.bloggern.com
首页  留言本  注册  用户名: 密码:  
scala的一些感想(3) -- scala的语法糖之tuple
作者:小猪   938字节   点击:25447   回复:1176   所属分类:
创建时间:2012-03-02 10:36:49   最后修改时间:2012-03-02 10:36:49  
tuple大概是scala提供的最为方便的语法糖之一了,在需要组合多个值的情况下的确非常方便,比如有多个返回值的method。但是,方便是有代价的,tuple的滥用带来的问题就是代码可读性的指数性下降,我在代码中经常看到类似这样的返回值定义: (List[(String, Map[Int,(Int,String)])],List[(String, Date)]),tuple让程序员无需为复杂的组合类型定义数据结构就可以直接使用,看似提高了生产率,减少了代码量,但实际上潜在的鼓励程序员写出无法阅读的代码。

tuple提供的方便的确是很难抵挡的诱惑,我无数次的纠结需不需要定义一个返回值的class,至少有一半的时候,我都可耻的妥协了。。。我个人的看法是,tuple不是语法糖,而是语法海洛因,让人上瘾,但却绝对害人终身。

不过从另一方面讲,对于那些需要返回复杂内容的method都专门定义一个class也的确是一件很痛苦的麻烦事,我希望能够有一种方案综合tuple和class的优点-方便以及清晰易读,比如一个可以为每个值域命名的tuple,大概可以称之为named tuple,或者一个可以匿名定义的数据结构,大概可以称之为local anonymous class这样子的概念。
附件:
评论:

本文允许匿名评论

发表评论:(最长不得超过128KB)
验证码:


您不能对本文发表评论。