转载

Swift中的Lazy与计算属性

一般来说,Swift中lazy定义计算属性的写法像下面这样,类似闭包的语法

lazy var players: [String] = {     var temporaryPlayers = [String]()     temporaryPlayers.append("John Doe")     return temporaryPlayers }()

或者实例方法

lazy var players: [String] = self.initialPlayers()    func initialPlayers() -> [String] {   var players = ["John Doe"]   return players }

或者类方法

class TestClass {   lazy var players = TestClass.initialPlayers()    class func initialPlayers() -> [String] {     var players = ["John Doe"]     return players   }  }

什么时候使用呢?

init初始化前,对象的属性还不知道的时候

某个属性需要大量计算耗时,但是init对象的时候又不是必须用到这个属性的时候

正文到此结束
Loading...