小编n9M*_*tq4的帖子

Kotlin:申请vs With

和申请有什么区别.据我所知,下面的代码做了同样的事情:

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

59
推荐指数
3
解决办法
1万
查看次数

获取非包扩展属性的KProperty

在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

4
推荐指数
1
解决办法
242
查看次数

标签 统计

kotlin ×2