【发布时间】:2017-11-04 18:13:26
【问题描述】:
struct Person
{
var personName:String?
init(name:String) {
personName=name
}
lazy var greetLazy:String =
{
return "Hello \(self.personName!)"
}()
func greetFunc()->String
{
return "Hello \(self.personName!)"
}
}
var person:Person=Person(name:"")
print(person.greetLazy)
print(person.greetFunc())
我创建了两件事,即一个惰性属性和一个函数来做同样的事情。现在它说 greetLazy 的值只会在第一次访问时计算,所以当我使用 person.greetLazy 访问它时,它会打印到控制台,这就是懒惰的假设意思是。
我的问题是在函数的情况下,只有当我访问函数时才会返回值。它不会预先计算它。那么在这种情况下,两者之间有什么区别?
【问题讨论】:
标签: swift function lazy-evaluation