此功能即将推出Kotlin 1.4
。这是KotlinConf'19
的摘录。
fun interface Action {
fun run()
}
fun runAction(a: Action) = a.run()
runAction{
println("Hello")
}
看起来不错,但我仍然不知道它的作用。
什么是功能界面?它的实际价值是什么?它可以用于哪些特定场景?
它打算支持lambda
我想拥有带有功能接口的invoke-function是因为这是java定义lambda的方式,lambda的应该是可调用的
创建lambda in kotlin instead of Java
当前的SAM转换仅适用于Java接口和抽象类。该设计背后的最初想法是针对此类用例明确使用函数类型。然而,事实证明,函数类型和类型别名并不能涵盖所有用例,并且人们经常不得不在Java中保留接口只是为了获得SAM转换。
这是关于功能接口