在Big Nerd Ranch第24章的摘录中,为什么takeOwnership()在更改资产时不需要使用inout参数? 由于它正在修改资产的所有者,因此我希望资产为内出。
提前谢谢!
class Person {
var assets = [Asset]()
init(name: String) {
self.name = name
}
func takeOwnership(of asset: Asset) {
asset.owner = self
assets.append(asset)
}
}
答案 0 :(得分:0)
Asset
是一个类,因此已通过引用传递。对asset
参数所做的更改就是对传入对象的更改。如果Asset
是一个结构,则实际上必须是一个inout参数。