Groovy 中的 Kotlin 类作用域函数(let,also,apply,运行)

Kotlin like scope functions (let, also, apply, run) in Groovy

我认为标题本身就说明了问题 - Groovy 有类似 Kotlin 范围函数的东西吗?

obj.apply {
  foo()
  bar()
  baz()
}

// is the same as
obj.foo()
obj.bar()
obj.baz()

Groovy 有 obj.with { } 方法可以让你做同样的事情:

obj.with {
  foo()
  bar()
  baz()
}

还有一个 obj.tap { } 变体(相当于 obj.with(true) { })做同样的事情,但它 returns 传入对象。

def newObj = obj.tap {
  foo()
  bar()
  baz()
}

来源:http://docs.groovy-lang.org/docs/next/html/documentation/style-guide.html#_using_with_and_tap_for_repeated_operations_on_the_same_bean