Parámetros de la función Swift 2.0 'inout' y propiedades calculadas
Estoy probando Swift 2.0 beta en este momento y he encontrado un comportamiento extraño. Aquí hay un código de muestra:
private func someFunc(inout someString: String) {
print("Inside \'someFunc()\'")
print(someString)
someString = "Some another string"
}
private var someAncillaryInt = 42
print(someAncillaryInt)
private var someString: String {
get {
print("Inside \'getter\'")
return "Some string"
}
set {
print("Inside \'setter\'")
someAncillaryInt = 24
}
}
someFunc(&someString)
print(someAncillaryInt)
Salida:
42
Dentro de 'getter'
Dentro de 'someFunc ()'
Alguna cuerda
'Setter' interior
24
No entiendo porque noadquiridor llamado durante la impresiónsomeString
dentrosomeFunc()
y por qué fue cuandosomeFunc()
fue aprobado consomeString
.
Se puede suponer que no entiendo las complejidades deEn fuera parámetros aún y después de pasar comoEn fuera la propiedad calculada del parámetro deja de ser, em, "calculada", pero ¿por qué se llamó 'setter' cuando configuramos otro valor parasomeString
?
¡Gracias!
UPD: Agregué la respuesta a continuación.
ACTUALIZACIÓN 18/11/2015: Apple ha actualizado sumanual con una explicación detallada de cómo funcionan los parámetros internos.