January 2018
Intermediate to advanced
434 pages
14h 1m
English
If the value of an element or expression is not evaluated when it's defined, but rather when it is first accessed, it is said to be lazily evaluated. There are many situations where it comes in handy. For example, you might have a list A and you want to create a filtered list from it, let's call it list B. If you do something like the following, the filter operation will be performed during the declaration of B:
val A= listOf(1,2,3,4)var B=A.filter { it%2==0}
This forces the program to initialize B as soon as it is defined. While this may not be a big deal for a small list, it can cause latency with bigger objects. Also, we can delay the object creation until we first need it. In this recipe, we will ...
Read now
Unlock full access