所以...我的意思是:
class Test {
var a: String?
var b: String?
}
是否可以使用基于参数更新a或b的函数?
有点像
func updateTest(_ attribute: Test.attribute,_ updateTo: String){
attribute = updateTo
}
然后打电话给:
var test = Test()
updateTest(test.b, "foo")
print(test.b) // foo
答案 0 :(得分:1)
是的,您可以使用inout
parameter:
func updateTest(_ attribute: inout String?, _ updateTo: String) {
attribute = updateTo
}
然后:
updateTest(&test.b, "foo")
有关&
的含义,请参阅What does an ampersand (&) mean in the Swift language?。
答案 1 :(得分:0)
不,你不能这样做。但你可以做到
func updateTest(_ testClass: Test,_ updateTo: String){
testClass.b = updateTo
}
所以你的代码将是
var test = Test()
updateTest(test, "foo")
print(test.b) // foo