Espressioni lazy
Le espressioni lazy sono espressioni che non vengono valutate immediatamente, ma vengono invece valutate quando è necessario il risultato. Ciò consente di migliorare le prestazioni del codice.
Sintassi
let identifier = lazy ( expression )
Osservazioni:
Nella sintassi precedente l'espressione è il codice valutato solo quando è necessario un risultato e l'identificatore è un valore che archivia il risultato. Il valore è di tipo Lazy<'T>
, dove il tipo effettivo utilizzato per 'T
viene determinato dal risultato dell'espressione.
Le espressioni differita consentono di migliorare le prestazioni limitando l'esecuzione di un'espressione solo a quelle situazioni in cui è necessario un risultato.
Per forzare l'esecuzione delle espressioni, chiamare il metodo Force
. Force
fa sì che l'esecuzione venga eseguita una sola volta. Le chiamate successive per Force
restituire lo stesso risultato, ma non eseguono codice.
Il codice seguente illustra l'uso di espressioni lazy e l'uso di Force
. In questo codice il tipo di result
è e il Force
metodo restituisce un oggetto int
Lazy<int>
.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
La valutazione differita, ma non il Lazy
tipo, viene usata anche per le sequenze. Per altre informazioni, vedere Sequenze.