Sobes.tech
Junior — Middle

Este posibil să se implementeze evaluarea lene folosind construcția let?

sobes.tech AI

Răspuns de la AI

În Swift, construcția let este utilizată pentru declararea constantelor, adică valori care sunt inițializate o singură dată și nu se schimbă. Cu toate acestea, let în sine nu asigură o evaluare leneșă (lazy).

Pentru a implementa o evaluare leneșă în Swift, se folosește cuvântul cheie lazy înainte de declarația unei proprietăți. Aceasta înseamnă că valoarea va fi calculată doar la prima accesare.

Exemplu de proprietate leneșă:

class Example {
    lazy var expensiveComputation: Int = {
        print("Calcul realizat")
        return (0..<1000000).reduce(0, +)
    }()
}

let example = Example()
// Până nu accesăm expensiveComputation, calculul nu are loc
print(example.expensiveComputation) // Aici are loc calculul

Prin urmare, let nu este potrivit pentru evaluare lazy; pentru aceasta, trebuie folosit lazy var.