Let's say I have a class like this :
class User {
lateinit var firstname: String
lateinit var lastname: String
lateinit var age: String
}
Now, I want to populate this class, and use it, like this :
fun main() {
val user = User()
user.firstname = "firstname"
user.lastname = "lastname"
user.age = "25";
println("Hello, ${user.firstname} ${user.lastname}, you are ${user.age} !")
}
Output : > Hello, firstname lastname, you are 25 !
In Kotlin, we have some syntactic sugar keyword with
, which returns the receiver passed in params and allows us not to repeat the variable name over and over, for example, this will output the same thing and is a bit more pretty :
fun main() {
val user = User()
with (user) {
firstname = "firstname"
lastname = "lastname"
age = "25";
println("Hello, $firstname $lastname, you are $age !")
}
}
Is there an equivalent to Kotlin's with(receiver: T, block: T.() -> R)
function in Dart ?