你们还在用 Scala元组Tuple234..? Outer啦

2019-07-09  本文已影响0人  kikiki4

为什么这么说呢,难道我自己多年使用的方式错了嘛,是的,你没错,我错了,哈哈,主要原因是使用Tuple的时候容易搞错对象,Tuple2的时候还知道第一个参数跟第二个参数的意思,后面多来个几参数你会记得_1._2._3._4代表的意思是什么吗?代码结构也不好维护,所以请结束使用Tuple吧

请开始你的表演

正常使用Tuple

val list = Array((1,2,3,4),(5,6,7,8))
list.filter(_._1>0).map(_._2).foreach(println)

你说你说,再过几天你还记得_1,_2是什么意思吗,假设list是个变量从其它地方传过来,蛋就更加的疼了,当然了,有小伙伴又说了,我使用case class 不就解决这样的问题了吗?有道理,那如果业务有很多case class 呢?维护起来是不是也很复杂,说了半天,快直接说答案,来了来了,这就一一道来。

正确的打开方式

使用匿名类

new {
        val id:Int
        ...
      }

正确例子

val list = Array(
      new {
        val id: Int = 1
        val age: Int = 2
        val add: Int = 3
        val name: Int = 4
      },
      new {
        val id: Int = 5
        val age: Int = 6
        val add: Int = 7
        val name: Int = 8
      }
    )
    list.filter(_.id>0).map(_.age).foreach(println)

我告诉你,我这项目我过N年都记得它每个字段的意思,而且还可以随时加字段。哈哈~~~


上一篇下一篇

猜你喜欢

热点阅读