Overview
The apply()
function is a commonly-used scope function defined in the Kotlin standard library. It’s frequently used for initializing an object after instantiation.
Example
val size = "Hello".apply {
println(this)
}.length
In this example, the string “Hello” is printed, and then its length is assigned to the size
variable.
Characteristics
When the apply()
extension function executes:
- the receiver object that
.apply()
is called upon is available asthis
- the result will be the receiver object
Initializing an Object
It’s common to use apply()
to initialize an object after it’s been created. For example, here’s a chunk of Android code that configures an EditText
.
EditText view = new EditText(this);
view.setText("This is an EditText in Java");
view.setVisibility(View.VISIBLE);
view.setSelection(0, 4);
container.addView(view);
After the object is created, there are a few setters that we call on it. The apply()
function allows us to create and further initialize an object in a block of code, without the noise of view.
on each line.
container.addView(EditText(this).apply {
setText("This is an EditText in Kotlin")
visibility = View.VISIBLE
setSelection(0, 4)
})
Alternatives
Check out the guide, Understanding Kotlin’s let(), also(), run(), and apply() for help figuring out which scope function to use.