Kotlin 引用(双冒号::)

作者 : admin 本文共858个字,预计阅读时间需要3分钟 发布时间: 2024-06-10 共1人阅读

文章目录

  • 双冒号::
  • 引用函数
    • 普通函数
    • 成员函数
    • 类构造函数
  • 引用变量(很少用)
    • 普通变量
    • 成员变量

双冒号::

Kotlin 中可以使用双冒号::对某一变量、函数进行引用。

Note:MyClass::class可用于获取KClass,此时的双冒号::并不是引用。

引用函数

有时候我们定义了一个函数,我们想让某个变量值为该函数,或者想把该函数作为参数传入另一个函数,可以借助::

普通函数

fun myFun() { println("myFun") }


fun otherFun(block: () -> Unit) = block()


fun main() {
    val function = ::myFun
    function()

    otherFun(::myFun)
}
myFun
myFun

成员函数

class MyClass {
    fun example() = print("MyClass.example")
}


fun main() {
    val myClass = MyClass()
    val example = myClass::example
    example()
}
MyClass.example

类构造函数

class MyClass


fun main() {
    val constructor = ::MyClass
    val myClass: MyClass = constructor()
}

引用变量(很少用)

普通变量

val name = "Kotlin"


fun main() {
    val kProperty0: KProperty0<String> = ::name
    print(kProperty0.get())
}
Kotlin

成员变量

class MyClass {
    val name = "MyClass"
}


fun main() {
    val myClass = MyClass()
    val kProperty0: KProperty0<String> = myClass::name
    print(kProperty0.get())
}
Kotlin

Note:你能引用参数:

fun myFun(name: String, block: () -> Unit) {
   // 这是错误的
   // ::name
   // ::block
}
本站无任何商业行为
个人在线分享 » Kotlin 引用(双冒号::)
E-->