Вы можете сделать что-то подобное с помощью let
:
"Some String".let { SomeObject(it) }
Если у вас есть соответствующий конструктор (например, constructor(s : String) : this(...)
), вы также можете вызвать его следующим образом:
"Some String".let(::SomeObject)
run
и with
также работают, но обычно используются, если вы хотите вместо этого вызвать метод получателя.Использование run
/ with
для этого будет выглядеть следующим образом:
"Some String".run { SomeObject(this) }
with ("Some String") { SomeObject(this) }
// but run / with is rather useful for things like the following (where the shown function calls are functions of SomeObject):
val x = someObject.run {
doSomethingBefore()
returningSomethingElse()
}