是否可以将类的属性作为参数传递? (迅速)

时间:2017-03-10 19:34:25

标签: swift

所以...我的意思是:

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

2 个答案:

答案 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