首页 > 解决方案 > 如何返回在 Kotlin 上进行操作的对象的值(类似于 Javascript 中的双点运算符)?

问题描述

在 Javascript 中,有一个像双点 (..) 这样的运算符,您可以在其中对所述对象进行操作,然后完全返回修改后的对象,而不是返回函数结果。

例子:

var a = [1, 2, 3]
return a..push(4) // returned data: array of [1, 2, 3, 4]

Kotlin 中有这样的运算符吗?我想改变:

var a = mutableListOf(1, 2, 3)
a.add(4)
return a

进入:

var a = mutableListOf(1, 2, 3)
return (a..add(4))

或类似的东西。谢谢。

标签: kotlin

解决方案


你想要的是应用运算符

以该值作为接收者调用指定的功能块并返回该值。

var a = arrayListOf(1,2,3)
a = a.apply {add(4) }
println(a)
// [1,2,3,4]

进一步阅读:

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/apply.html


推荐阅读