Swift lazy

參考連結:

Lazy 使用時機

  • A variable needs to know about other variable values

  • Delay expensive tasks(需要耗費大量效能的任務)

    • 比使用 Computed Property 好,因為 lazy 算過一次後就會把結果存下來

import Foundation
struct Calculator
{
    static func calculateGamesPlayed() -> Int
    {
        var games: [Int] = []
        for i in 1...4000 { games.append(i) }
        return games.last!
    }
}
struct Player
{
    var name: String
    var team: String
    var position: String
    
    // MARKL: - A variable needs to know about other variable values
    lazy var introduction =
    {
        return "Now entering the game: \(name), \(position) for the \(team)"
    }()
    
    // MARK: - Delay expensive tasks
    lazy var gamesPlayed =
    {
        Calculator.calculateGamesPlayed()
    }()
}
var jordan = Player(name: "Michael Jordan",
                    team: "Bulls",
                    position: "Shooting Guard")
                    
print(jordan.introduction)
print(jordan.gamesPlayed) 

Last updated