在Kotlin,有一种apply方法:
Run Code Online (Sandbox Code Playgroud)inline fun <T> T.apply(block: T.() -> Unit): T (source)调用指定的功能块,将
this值作为其接收器并返回this值.
这允许您配置如下对象:
val myObject = MyObject().apply {
someProperty = "this value"
myMethod()
}
Run Code Online (Sandbox Code Playgroud)
myObject将是MyObject在apply {}电话会议之后.
Groovy有这样的with方法,类似于:
Run Code Online (Sandbox Code Playgroud)public static <T,U> T with(U self, @DelegatesTo(value=DelegatesTo.Target.class,target="self",strategy=1) Closure<T> closure )允许为对象引用self调用闭包.
...
以及来自doc的一个例子:
def b = new StringBuilder().with {
append('foo')
append('bar')
return it
}
assert b.toString() == 'foobar'
Run Code Online (Sandbox Code Playgroud)
使用Groovy方法的部分总是必须用来return it返回with调用的委托,这使代码更加冗长.
是否有相当于applyGroovy中的Kotlin ?
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |