map 与 zip 并非Swift首创,不过对于熟悉OC的ios开发者来说,还是比较陌生的。其实不难理解,zip是把一组待操作对象打包起来,可以理解成array的array。而map所做的是把这些对象依次执行操作,有些流水线的味道。下面是一个常见的例子:
zip([leftHoop, rightHoop, hoop, hoop], offsets).map({ (item, offset) in
animator?.addBehavior(UIAttachmentBehavior.pinAttachmentWithItem
(item, attachedToItem: board, attachmentAnchor: bolts)) })
可以看到,zip中元素的顺序和map中是对应的,这样处理的好处是可以避免很多重复代码,这是一种极简但是强大的语法。