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())
Run Code Online (Sandbox Code Playgroud)
我创造了两件事,即一个懒惰的属性和一个做同样事情的功能.现在它说greetLazy的值只会在第一次访问时计算出来,所以当我使用person.greetLazy访问它时,它会打印到控制台,这就是懒惰应该是什么意思.
我的问题是在函数的情况下,只有在我访问函数时才会返回值.它不会预先计算它.那么在这种情况下两者之间会有什么区别呢?