¿Cómo fusionar varias matrices sin networkingucir la velocidad del comstackdor?

Agregar esta línea de código hace que mi time de compilation pase de 10 segundos a 3 minutos.

var resultsArray = hashTagParticipantCodes + prefixParticipantCodes + asterixParticipantCodes + attPrefixParticipantCodes + attURLParticipantCodes 

Cambiarlo a esto hace que el time de compilation vuelva a la normalidad.

 var resultsArray = hashTagParticipantCodes resultsArray += prefixParticipantCodes resultsArray += asterixParticipantCodes resultsArray += attPrefixParticipantCodes resultsArray += attURLParticipantCodes 

¿Por qué la primera línea hace que mi time de compilation ralentice tan drásticamente y hay una manera más elegante de combinar estas Arrays que la solución de 5 líneas que he publicado?

Siempre es + Cada vez que la gente se queja de times de compilation explosivos, le pregunto "¿has encadenado + ?" Y siempre es así. Es porque + está muy sobrecargado. Dicho esto, creo que esto es dramáticamente mejor en Xcode 8, al less en mi experimento rápido.

Puede acelerar dramáticamente esto sin requerir una var al unir las matrices en lugar de agregarlas:

 let resultsArray = [hashTagParticipantCodes, prefixParticipantCodes, asterixParticipantCodes, attPrefixParticipantCodes, attURLParticipantCodes] .joinWithSeparator([]).map{$0} 

El .map{$0} al final es obligarlo a volver a una Matriz (si lo necesita, de lo contrario, puede usar la perezosa FlattenCollection). También puede hacerlo de esta manera:

 let resultsArray = Array( [hashTagParticipantCodes, prefixParticipantCodes, asterixParticipantCodes, attPrefixParticipantCodes, attURLParticipantCodes] .joinWithSeparator([])) 

Pero verifique Xcode 8; Creo que esto está solucionado al less parcialmente (pero usar .joined() es aún mucho más rápido, incluso en Swift 3).