June 2018
Intermediate to advanced
310 pages
6h 32m
English
We have already discussed apply() in previous chapters. It returns the same object it operates on and sets the context to this. The most useful case for this function is setting the fields of a mutable object.
Think of how many times you had to create a class with an empty constructor, then call a lot of setters, one after another:
class JamesBond { lateinit var name: String lateinit var movie: String lateinit var alsoStarring: String}val agentJavaWay = JamesBond()agentJavaWay.name = "Sean Connery"agentJavaWay.movie = "Dr. No"
We can set only name and movie, but leave alsoStarring blank, like this:
val `007` = JamesBond().apply { this.name = "Sean Connery" this.movie = "Dr. No"}println(`007`.name)
Since the context is set to this, we ...
Read now
Unlock full access