Built-in Standard Delegates

Kotlin provides a few built-in delegates that we can readily benefit from. The Lazy delegate is useful to defer creating objects or executing computations until the time the result is truly needed. The observable delegate is useful to observe or monitor changes to the value of a property. The vetoable delegate can be used to reject changes to properties based on some rules or business logic. We’ll explore these features in this section.

It’s OK to get a little lazy

Decades ago John McCarthy introduced short-circuit evaluation to eliminate redundant computations in Boolean logic—the execution of an expression is skipped if the evaluation of an expression ahead of it is enough to yield the result. Most programming languages support this feature, and programmers quickly learn about the efficiency of this approach. The Lazy delegate pushes the boundaries of this approach—let’s see how. Suppose we have a function that gets the current temperature for a city (the following implementation merely returns a fake response):

Get hands-on with 1200+ tech skills courses.