您的位置:首页 > 科技 > 能源 > 网站维护专业_oa办公系统如何使用_爱站网官网关键词_怎么让百度搜索靠前

网站维护专业_oa办公系统如何使用_爱站网官网关键词_怎么让百度搜索靠前

2025/5/2 15:09:24 来源:https://blog.csdn.net/heeheeai/article/details/144732654  浏览:    关键词:网站维护专业_oa办公系统如何使用_爱站网官网关键词_怎么让百度搜索靠前
网站维护专业_oa办公系统如何使用_爱站网官网关键词_怎么让百度搜索靠前

函数引用的类型

Kotlin 支持几种类型的函数引用:

  • 引用顶层函数: ::topLevelFunction
  • 引用成员函数: ::memberFunction (需要一个对象实例来调用)
  • 引用扩展函数: ::extensionFunction (需要一个接收者对象)
  • 引用构造函数: ::ClassName 或 ClassName::class.constructors.first() (对于特定的构造函数)
  • 引用属性: ::propertyName (可以是 val 或 var)
  • 引用绑定成员引用: 使用 object : SomeInterface { … }::someMethod 的形式,创建一个绑定到特定对象实例的成员函数引用. 这在需要引用特定对象实例的成员函数时很有用,即使该对象实例在创建函数引用后可能会更改。

如何创建函数引用

使用 :: 运算符后跟函数或属性的名称来创建函数引用。

示例

fun topLevelFunction(x: Int, y: Int): Int = x + yclass MyClass {fun memberFunction(s: String): Int = s.lengthfun double(x: Int): Int = x * 2
}fun String.extensionFunction(): Int = this.lengthval myProperty: Int = 42fun main() {// 引用顶层函数val sum: (Int, Int) -> Int = ::topLevelFunctionprintln(sum(1, 2)) // 输出 3// 引用成员函数val obj = MyClass()val length: (String) -> Int = obj::memberFunctionprintln(length("hello")) // 输出 5// 引用扩展函数val extLength: String.() -> Int = String::extensionFunctionprintln("world".extLength()) // 输出 5// 引用构造函数val createMyClass: () -> MyClass = ::MyClassval newObj = createMyClass()// 引用属性val getProperty: () -> Int = ::myPropertyprintln(getProperty()) // 输出 42// 引用绑定成员引用val doubleFunction: (Int) -> Int = obj::double // 绑定到 obj 实例println(doubleFunction(5)) // 输出 10
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com