РЕДАКТИРОВАТЬ
Вы получаете java.lang.ClassCastException
, потому что this@run
ссылается на значение 1.0
(самое близкое в области действия), которое затем вы пытаетесь преобразовать в строку.Если вы хотите использовать приемник вместо аргумент , вы можете использовать альтернативную функцию apply
для одной из ваших лямбд
Пример
fun main(args: Array<String>) {
"".run {
1.0.apply {
println(this@run == "")
}
}
}
Предыдущий
Используйте also
вместо run
, таким образом, переменная будет передана как параметр лямбды вместолямбда с приемником .
Пример
fun main(args: Array<String>) {
"".also { text ->
1.0.run {
println(this@run == "")
}
}
}
В качестве альтернативы, вы можете использовать apply
вместо запуска