Extension Functions

Understand Kotlin's extension functions, how to define them, and why they are a fundamental feature of Kotlin.

Extension functions allow you to attach new functions to existing types. This includes ones that you don’t own, such as Int, String, any predefined Java class such as Date, Instant, and any type imported from a library.

Typically, this is done using utility classes that encapsulate a series of utility functions. You may be familiar with class names such as StringUtils or DateUtils. In Kotlin, missing capabilities of a class you want to use can be patched using extension functions instead.

Defining an Extension Function #

Let’s say you want to use Java’s old Date class (instead of the java.time package). In your application, you want to add a number of days to a given Date. Ideally, you’d want to write the following:

Get hands-on with 1000+ tech skills courses.