Swift在4.1版本之前只有map
和flatMap
函数,之后引入了compactMap
函数,但是compactMap
函数并不是实现新的功能,而是用来解决flatMap
函数功能不唯一的问题。原先flatMap
函数既有去除nil的功能,也能将多维数组降维成一维,这违背了函数设计的单一职责原则,所以 Swift 4.1以后,使用flatMap
函数只解决降维问题,去除nil的功能由新引入的compactMap
函数完成。
map函数
逐个处理数组中的元素,并生成新数组
complactMap函数
和map
函数一致,只是当结果返回nil时,新数组会去除这一项
flatMap函数
和map
函数一致,但当原数组是多维数组时,新数组只会返回一维数组