我知道inout
对值类型有什么作用。
对于对象或任何其他引用类型,在这种情况下,该关键字是否有目的,而不是使用var
?
代码示例:
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
它可以与var
参数列表中的关键字相同。