Conformément à la documentation officielle, les opérateurs intégrés de Swift sont des fonctions globales définies avec l'attribut @infix
.Type et invocation des opérateurs de Swift
En tant que tel, est-ce que la seule façon d'invoquer une telle fonction est de l'avoir entre deux types pour lesquels l'opérateur a été défini? Ou est-il possible de faire quelque chose de semblable à par ex. +(3,3)
?
Ce qui me fait penser que c'est une déclaration valide:
Array(1...10).reduce(0, +)
Comment, exactement, sera le +
être invoqué dans le cas ci-dessus? Y a-t-il une différence avec ce morceau de code?
Array(1...10).reduce(0, {$0 + $1})
Cette invocation supplémentaire de la '{$ 0 + 1 $ } 'sera probablement supprimé par l'optimiseur, il est donc probable que les deux lignes soient compilées avec le même code. – rickster