Kotlin:应用vs
有什么区别和适用。 从我所知道的下面的代码做同样的事情:
swingElement.apply { minWidth = ENABLED_COLUMN_WIDTH maxWidth = ENABLED_COLUMN_WIDTH preferredWidth = ENABLED_COLUMN_WIDTH } with(swingElement) { minWidth = ENABLED_COLUMN_WIDTH maxWidth = ENABLED_COLUMN_WIDTH preferredWidth = ENABLED_COLUMN_WIDTH }
有什么区别,我应该使用一个吗? 另外,有些情况下,一个会工作,另一个不会?
有两个区别:
-
apply
接受一个实例作为接收者,同时要求一个实例作为参数传递。 在这两种情况下,实例将在一个块内变成this
。 -
apply
返回接收者并返回其块内最后一个表达式的结果。
我不确定在哪个功能上可以有一些严格的规定。 通常apply
当你需要对一个对象做某些事情并返回时,你可以使用apply
。 而当你需要在一个对象上执行一些操作并返回一些其他对象时,你可以使用或者run
。 我更喜欢run
因为在我看来它更具可读性,但这是一个品味的问题。
- Kotlin:迭代对象的组件
- 不能在不同的模块中创建具有相同名称的私有类
- Kotlin:我们可以在Kotlin中使用@订阅EventBus(GreenRobot)吗?
- 交换Guava MutableValueGraph中的节点
- kotlin:我怎样才能从对象表达式调用函数
- 如何在Kotlin中编译时间常数NaN或POSITIVE_INFINITY?
- com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期的BEGIN_ARRAY,但在第1行第2列的路径
- Kotlin函数参数:Val不能被重新分配
- 在运算符重载kotlin中,plus和plusAssign有什么区别?