代码之家  ›  专栏  ›  技术社区  ›  Chen Li Yong

如何返回正在Kotlin上执行操作的对象的值(类似于Javascript中的双点运算符)?

  •  0
  • Chen Li Yong  · 技术社区  · 4 年前

    在Javascript中,有一个类似double dot(..)的运算符,您可以在该运算符上对所述对象执行操作,然后返回修改后的对象,而不是返回函数结果。

    例子:

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

    科特林有这样的接线员吗?我想改变:

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

    进入:

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

    1 回复  |  直到 4 年前
        1
  •  2
  •   Naor Tedgi    4 年前

    你想要的是

    使用此值作为其接收器调用指定的函数块,并 返回此值。

    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