如何创建将函数作为构造函数参数的类.然后,在课程后面的某个位置使用此函数.

推荐答案

You can have a property with a function type just like you would with any other type:

class A(val f: () -> Unit) {

    fun foo() {
        f()
    }

}

在这里,您可以将该函数作为方法引用传递给构造函数:

fun bar() {
    println("this is bar")
}

val a = A(::bar)
a.foo()             // this is bar

Or as a lambda:

val a = A({ println("this is the lambda") })

你甚至可以为lambda做通常的语法分析,lambda是函数的最后一个参数(尽管这有点疯狂):

val a = A { println("this is the lambda") }

Kotlin相关问答推荐

Groovy Gradle文件的Kotlin类似功能

Kotlin中一个接口的实现问题

Kotlin编译器如何决定是否可以在任何给定点调用Suspend方法?

通过快捷键手动砍掉功能参数等

在Kotlin lambda的参数中如何指定函数类型?

Kotlin supervisorScope 即使包裹在 try catch 中也会失败

将子元素放在一个列表中

T except one class

如何从 Java 中隐藏 Kotlin 的 lateinit var 支持字段?

在协程中等待侦听器内的数据

未在IntelliJ IDEA上运行临时文件

如果 Maybe 完成,则从其他来源将 Maybe 转换为 Single

将多个 Kotlin 流合并到一个列表中,而无需等待第一个值

有没有办法在数据类构建时转换属性的值?

Kotlin:子构造函数如何使用其父构造函数的辅助构造函数?

如何将 Kotlin 日期中的字符串或时间戳格式化为指定的首选格式?

TypeConverter()在Android的TypeConverter错误中具有私有访问权限

在 Kotlin 中创建非绑定服务

如果kotlin已经有了getter和setter,为什么在数据类中有componentN函数?

Kotlin - 为什么我会得到 KotlinNullPointerException