Kotlin中的作用域解析运算符
我已经阅读了以下语法。我不知道为什么要在其中使用范围解析运算符Kotlin中的作用域解析运算符,kotlin,Kotlin,我已经阅读了以下语法。我不知道为什么要在其中使用范围解析运算符 class XyzFragment : Fragment() { lateinit var adapter: ChatAdapter override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { if (!::adapter.isInitialized) { <-- This one ad
class XyzFragment : Fragment() {
lateinit var adapter: ChatAdapter
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
if (!::adapter.isInitialized) { <-- This one
adapter = ChatAdapter(this, arrayListOf())
}
}
}
XyzFragment类:Fragment(){
lateinit变量适配器:ChatAdapter
覆盖已创建的视图(视图:view?,savedInstanceState:Bundle?){
if(!::adapter.isInitialized){:
是Kotlin中this::
的缩写形式
:
是用于创建成员引用或类引用的运算符。例如
class Test {
fun foo() {
}
fun foo2(value: Int) {
}
fun bar() {
val fooFunction = ::foo
fooFunction.invoke() // equals to this.foo()
val foo2Function = ::foo2
foo2Function.invoke(1) // equals to this.foo2(1)
val fooFunction2 = Test::foo
val testObject = Test()
fooFunction2.invoke(this) // equals to this.foo()
fooFunction2.invoke(testObject) // equals to testObject.foo()
}
}
这主要用于反射和传递函数。仅供参考,在Kotlin中尝试编译此函数时,它是否仍被称为“范围解析”运算符?在文档中的任何地方都看不到该名称。@VishnuHaridas否,因为它从来没有这样调用过。这可能是您需要的。此外,您应该问一个新问题,而不是写注释。