Scala入门指南系列教程目录
上一篇介绍了数组、元组、不可变列表和可变列表的基本操作。这一篇我们从可变列表的扁平化、拉链和拉开说起。
扁平化是指把含有嵌套结构的多层列表,转化为一层列表的操作。有点像公司人事经常提到的组织结构扁平化。一般的公司会有多层领导,像金字塔一样的复杂层级关系,一个大领导管着几个分区领导,分区领导管着项目组长,项目组长管理项目成员。扁平化就是把这些领导精简成几个主要负责人,他们之间是平级关系,然后再负责下面的项目组成员。Scala列表的扁平化更粗暴一些,直接让大家都是平级关系,只有这一级,没有领导,这在现实公司中是不可能的,但是数据上是完全可行的。有点像用液压机把一个金字塔从上压下来,把金字塔直接碾平(三维变二维,降维打击)。
拉链这个名词取的很形象,把两个列表按照位置一一对应,封装成一个元组,然后所有的元组再封装成List。如A列表的第一个元素A1和B列表的第一个元素B1封装成(A1,B1),然后封装成List((A1,B1),(A2,B2)...(AN,BN))。很像拉链一样,把衣服两侧的小长条一一对应,然后拉在一起,组成一个长条。拉链操作不要求两个列表长度一致,如果不一致,形成的列表长度取短的那个,长的那个列表的最后没对应上的成员就会被舍