為什么這么說呢孩饼,難道我自己多年使用的方式錯了嘛嫡意,是的,你沒錯捣辆,我錯了蔬螟,哈哈,主要原因是使用Tuple的時候容易搞錯對象汽畴,Tuple2的時候還知道第一個參數(shù)跟第二個參數(shù)的意思旧巾,后面多來個幾參數(shù)你會記得_1._2._3._4代表的意思是什么嗎?代碼結(jié)構(gòu)也不好維護,所以請結(jié)束使用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 不就解決這樣的問題了嗎嘁酿?有道理隙券,那如果業(yè)務有很多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年都記得它每個字段的意思借卧,而且還可以隨時加字段盹憎。哈哈~~~