A lazy stored property is a property whose initial value is not calculated until the first time it is used.
lazy ๋ณ์๋ ์ฒ์ ์ฌ์ฉ๋๊ธฐ ์ ๊น์ง ์ฐ์ฐ๋์ง ์๋๋ค.
๊ฐ๋ฐ์๋ ์ฒ์๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ณ ๋ คํ ์ต์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค. ์ฝ๋ ์์๋ฅผ ๋ณด๋ฉด, InterviewCandidate ๊ตฌ์กฐ์ฒด์์, ์ฌ์ฉ์๊ฐ ios๋ฅผ ์ ํํ๋์ง, android๋ฅผ ์ ํํ๋ ์ง์ ๋ฐ๋ผ isiOS ๋ณ์๊ฐ ๊ฒฐ์ ๋๋ค. person1์ isiOS๊ฐ์ด true์ด๋ค. printํจ์์์ ํธ์ถ๋๋ฉด์ iOSResumeDescription์ด ์ด๊ธฐํ๋์๋ค. ๋ฐ๋ฉด์ androidResumeDescription๋ nil์ด ๋๋ค.
import UIKit
struct InterviewCandidate {
var isiOS:Bool?
lazy var iOSResumeDescription: String = {
return "I am an iOS developer"
}()
lazy var androidResumeDescription: String = {
return "I am an android developer"
}()
}
var person1 = InterviewCandidate()
person1.isiOS = true
if person1.isiOS! {
print(person1.iOSResumeDescription)
} else {
print(person1.androidResumeDescription)
}