Scope functions
Last updated
Last updated
class Person(val name: String) {
fun sayHello() = println("Hello!")
}
class Dog(val name: String) {
fun bark() = println("Ruff!")
}
val person = Person("Julia")
val dog = Dog("Sparky")
with(person) {
with(dog) {
println(name) // Prints Sparky from the dog object
bark() // Calls bark() on the dog object
sayHello() // Calls sayHello() on the person object
}
}with(person) {
with(dog) {
println(this.name) // Prints Sparky
this.bark() // Calls bark() on the dog object
this.sayHello() // Compiler error - Unresolved reference: sayHello
}
}