和申请有什么区别.据我所知,下面的代码做了同样的事情:
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
}
Run Code Online (Sandbox Code Playgroud)
有什么区别,我应该使用一个吗?此外,是否有一些情况下,一个人会工作,另一个不会?
在kotlin中,您可以使用引用运算符来获取包扩展属性的KProperty,如下所示:
val String.extProp: String
get() = "Some get code"
fun foo() {
val prop: KProperty<String> = String::extProp
}
Run Code Online (Sandbox Code Playgroud)
但是,当在类中声明扩展属性时,引用运算符不再起作用:
class Example() {
val String.extProp: String
get() = "Some get code"
fun foo() {
val prop: KProperty<String> = String::extProp // error
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道的是如何在第二个例子中更改有问题的行,所以KProperty得到了什么?
kotlin ×2