¿El parámetro inout / var hace alguna diferencia con el tipo de referencia?
yo se queinout
hace paratipos de valor.
Con objetos o cualquier otrotipo de referencia, hay un propósito para esa palabra clave en ese caso, en lugar de usarvar
?
private class MyClass {
private var testInt = 1
}
private func testParameterObject(var testClass: MyClass) {
testClass.testInt++
}
private var testClass: MyClass = MyClass()
testParameterObject(testClass)
testClass.testInt // output ~> 2
private func testInoutParameterObject(inout testClass: MyClass) {
testClass.testInt++
}
testClass.testInt = 1
testInoutParameterObject(&testClass) // what happens here?
testClass.testInt // output ~> 2
Podría ser lo mismo que simplemente elvar
palabra clave en la lista de parámetros.