Chapter 7. Operator overloading and other conventions
This chapter covers
- Operator overloading
- Conventions: special-named functions supporting various operations
- Delegated properties
As you know, Java has several language features tied to specific classes in the standard library. For example, objects that implement java.lang.Iterable can be used in for loops, and objects that implement java.lang.AutoCloseable can be used in try-with-resources statements.
Kotlin has a number of features that work in a similar way, where specific language constructs are implemented by calling functions that you define in your own code. But instead of being tied to specific types, in Kotlin those features are tied to functions with specific names. For example, if your class defines a special method named plus, then, by convention, you can use the + operator on instances of this class. Because of that, in Kotlin we refer to this technique as conventions. In this chapter, we’ll look at different conventions supported by Kotlin and how they can be used.