【发布时间】:2023-12-24 19:00:01
【问题描述】:
我想知道快速重置对象属性的最佳实践方法是什么。在下面的示例代码中,我正在寻找一种方法来重置对象的属性而不创建新对象。
我知道最好创建一个新对象,因为它具有相同的效果,但我想知道是否有一种方法可以在不创建新对象的情况下做到这一点。另外,我知道我可以一个一个地重置每个属性,但是在一个有很多属性的类中,这将是一种更简洁的方法。
示例代码:
var pingPong: Game = Game()
class Game {
var player1Score: Int
var player2Score: Int
init() {
self.player1Score = 0
self.player1Score = 0
}
func newGame() {
init() //Code in question
}
}
我尝试从newGame() 方法调用init() 类,这会引发错误。我也试过调用self.init(),之后我收到一个错误,告诉我改用type(of: self).init(),这又引发了另一个错误Constructing an object of class type 'pingPong' with a metatype value must use a 'required' initializer。
如何在不创建新对象的情况下完成重置对象的属性?
【问题讨论】: