Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 功能类型之间的关系(T1,T2,…,Tn)——>;R和接口函数n_Kotlin - Fatal编程技术网

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,它应该可以工作。