the programming para language descargar apple swift swift3

programming - ¿Por qué los parámetros de función son inmutables en Swift?



the swift programming language pdf (1)

La motivación para esto se describe aquí: https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters.md

tl; dr : evita confusiones con la palabra clave inout .

La documentación de Swift 3 establece que los parámetros son inmutables:

Los parámetros de función son constantes por defecto.

También establece que los tipos de valor se copian cuando se pasan a funciones:

Las cadenas, matrices y diccionarios se copian cuando se pasan a una función o método.

Entonces, ¿por qué los parámetros son inmutables y copiados? Si el argumento es una constante, entonces no necesitamos una copia de su valor en el alcance de la función. Si el argumento se copia, entonces la variable original pasada no se puede modificar en la función (para tipos de valores).

Además, la inmutabilidad parece inconveniente ya que no podemos realizar cambios locales a un argumento sin antes copiarlo explícitamente (una vez más) a una variable local.

¿Estoy leyendo la documentación incorrectamente? ¿Hay una buena razón por la cual este es el caso?