Skip to content

Latest commit

ย 

History

History
46 lines (30 loc) ยท 948 Bytes

lazy.md

File metadata and controls

46 lines (30 loc) ยท 948 Bytes

lazy ํ‚ค์›Œ๋“œ

  • ์ง€์—ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ (Lazy Stored Properties)

  • ์ด ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š๋‹ค๊ฐ€, ํ˜ธ์ถœ๋  ๋•Œ ์ดˆ๊ธฐํ™” ๋จ

  • ๋ณต์žกํ•œ ๊ณ„์‚ฐ, ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์—์„œ ์ง€์—ฐ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ์„ฑ๋Šฅ์ €ํ•˜, ๊ณต๊ฐ„ ๋‚ญ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

  • ์˜ˆ์‹œ : lazy var

    ์ฃผ์˜ lazy let์€ ํ‹€๋ฆฐ ํ‘œํ˜„

์˜ˆ์ œ

struct ColorSet {
    var red: Int = 255
    var green: Int = 255
    var blue: Int = 255
}

class ArtWork {
    // ์ง€์—ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ
    lazy var backgroundColor: ColorSet = ColorSet()
    let name: String
    
    init(name: String) {
        self.name = name
    }
}

let myFavoriteArtWork = ArtWork(name: "Composition II with Red Blue and Yellow")

print(myFavoriteArtWork.backgroundColor) // ์ด๋•Œ ColorSet ์ƒ์„ฑ

๊ฒฐ๊ณผ

ColorSet(red: 255, green: 255, blue: 255)

์ฐธ๊ณ ์ž๋ฃŒ