Kotlin 引用(双冒号::)

文章目录

双冒号::

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

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

引用函数

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

普通函数

kt 复制代码
fun myFun() { println("myFun") }


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


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

    otherFun(::myFun)
}
复制代码
myFun
myFun

成员函数

kt 复制代码
class MyClass {
    fun example() = print("MyClass.example")
}


fun main() {
    val myClass = MyClass()
    val example = myClass::example
    example()
}
复制代码
MyClass.example

类构造函数

kt 复制代码
class MyClass


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

引用变量(很少用)

普通变量

kt 复制代码
val name = "Kotlin"


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

成员变量

kt 复制代码
class MyClass {
    val name = "MyClass"
}


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

Note:你能引用参数:

kt 复制代码
fun myFun(name: String, block: () -> Unit) {
   // 这是错误的
   // ::name
   // ::block
}
相关推荐
jinanwuhuaguo2 小时前
OpenClaw 2026年4月升级大系深度解读剖析:从“架构重塑”到“信任内建”的范式跃迁
android·开发语言·人工智能·架构·kotlin·openclaw
我命由我123454 小时前
Android Jetpack Compose - SearchBar(搜索栏)、Tab(标签页)、时间选择器、TooltipBox(工具提示)
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
Lsk_Smion4 小时前
Hot100(开刷) 之 长度最小的数组--删除倒数第N个链表--层序遍历
java·数据结构·算法·kotlin
我命由我123456 小时前
Android Jetpack Compose - 组件分类:布局组件、交互组件、文本组件
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
Kapaseker7 小时前
让你的 App 成为 AI 的一环
android·kotlin
千码君20161 天前
kotlin:Jetpack Compose 给APP添加声音(点击音效/背景音乐)
android·开发语言·kotlin·音效·jetpack compose
Kapaseker1 天前
lazy 与 lateinit 到底有什么区别?
android·kotlin
雨白2 天前
深入理解 Kotlin 协程 (三):返璞归真,探寻协程基础设施的底层基石
kotlin
call me by ur name2 天前
ERNIE 5.0 Technical Report论文解读
android·开发语言·人工智能·机器学习·ai·kotlin
catch_pig2 天前
告别繁琐配置:Catchpig Detekt Plugin 让 Kotlin/Android 代码检查开箱即用
kotlin·android studio·代码规范