在这段摘录自Big Nerd Ranch第24章的文章中,为什么takeOwnership()在更改资产时不需要使用inout参数?因为它正在修改资产的所有者,所以我会期望资产是in-out的。
提前谢谢你!
class Person {
var assets = [Asset]()
init(name: String) {
self.name = name
}
func takeOwnership(of asset: Asset) {
asset.owner = self
assets.append(asset)
}
}
发布于 2019-03-02 02:07:02
Asset
是一个类,所以它是通过引用传入的。对asset
参数所做的更改是对传入的对象所做的更改。如果Asset
是一个结构,那么它确实必须是一个inout参数。
https://stackoverflow.com/questions/54954542
复制相似问题