Kotlin 功能类型之间的关系(T1,T2,…,Tn)——>;R和接口函数n
如果说形式为Kotlin 功能类型之间的关系(T1,T2,…,Tn)——>;R和接口函数n,kotlin,Kotlin,如果说形式为(T1,T2,…,Tn)->R的函数类型在JVM上总是被解释为函数[n],对吗 编辑:是的,大部分是。function n接口是函数类型的JVM后端表示 一个修正是(T1,T2,…,Tn)->R类型由函数[n]表示,而不是函数[n+1]表示 对于具有22个或更少参数的函数,这是正确的,而具有23个或更多参数的函数都用一个特殊接口表示 您可以在本规范文档中找到一些关于设计的注释:谢谢,我修改了我的问题。我对23个及更多参数的函数都用一个特殊接口表示感到好奇。如果我定义f(p1:Int,
(T1,T2,…,Tn)->R
的函数类型在JVM上总是被解释为函数[n]
,对吗
编辑:是的,大部分是。
function n
接口是函数类型的JVM后端表示
一个修正是(T1,T2,…,Tn)->R
类型由函数[n]
表示,而不是函数[n+1]
表示
对于具有22个或更少参数的函数,这是正确的,而具有23个或更多参数的函数都用一个特殊接口表示
您可以在本规范文档中找到一些关于设计的注释:谢谢,我修改了我的问题。我对23个及更多参数的函数都用一个特殊接口表示感到好奇。如果我定义
f(p1:Int,…,p23:Int)=“
调用::f
会生成一个运行时异常java.lang.NoClassDefFoundError:kotlin/Function23
,这很有意义,因为函数[n]
接口只支持函数22
@DavidSoroko,哦,这似乎还没有得到适当的支持,请参阅。@DavidSoroko,您可以在1.3-M1早期访问预览中尝试Kotlin,它应该可以工作。