# Lazy

class Util.Lazy()

  This is used to delay the evaluation of a value.

  Evaluation is completely deferred until `get()` is called. Evaluation happens no more than once and the obtained value is cached for later calls to `get()`.

  —

  Example:

      const x = Lazy.create(() => {
          console.log("evaluating (x)")
          return 5;
      });
      console.log("created (x)");
      console.log(`(x) is ${x.get()}`);
      console.log(`(x+1) is ${x.get()+1}`);

      // *** Console Output ***
      // created (x)
      // evaluating (x)
      // (x) is 5
      // (x+1) is 6

  —

  Note: Unlike `LazyObject<T>`, this can have any type `T`.

Properties

- `__Lazy`

Methods

- `get()`

- `create()`

## Properties

Lazy.__Lazy
  Type

    PhantomMember

## Methods

### get

Lazy.get()

  Forces the lazy value given at construction and returns it.

  Return type

    T

### static create

Lazy.create(value)
  Arguments

    - value (`function()`) – None

  Creates a new lazy value, which is the result of the supplied function once the lazy value is forced.

  Return type

    Lazy <T>

  Lazy.value()
    Return type

      T