scala - 为什么 Scala 函数限制为 22 个参数?

标签 scala

并不是说我实际上已经接近这个极限,但我一直想知道:为什么他们停在 Function22/Tuple22 . JVM限制?随意选择?

最佳答案

函数和元组被编译器重写为对象,并且只有 Function0通过 Function22Tuple0通过 Tuple22被定义。我认为 22 的限制完全是任意的,但有限制的原因不是。

可以这样想:要运行 Scala 应用程序,运行它所需的类必须存在。如果编译器会为函数动态创建类,那么这些类将不会包含在 Scala 库 JAR 中,因此您必须将它们包含在您的应用程序中。这可以工作,但是您会遇到类的完全限定名称应该是什么的问题:如果它们对于所有应用程序都是相同的,那么您就会发生冲突,因为库将包含相同的类,并且如果名称不是同样,您最终会遇到不兼容问题——库中的函数与您的应用程序中的函数不同。

关于scala - 为什么 Scala 函数限制为 22 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152223/

相关文章:

scala - 如何从 java.util.Map 转换为 Scala Map

scala - Apache Spark - spark 中的内部作业调度程序如何定义用户和池

scala - 如何使用shapeless检测字段类型注释

java - BigtableConfiguration v 运行 Bigtable 模拟器时的 BigtableOptions

java - Scala 映射值扩展接口(interface)

scala - 您可以直接将非隐式 val 作为参数传递给需要隐式的函数吗?

scala - 静态方法更可组合吗?

scala - 在 Scala 中,如何从可序列化的类型创建 TypeTag?

scala - 将json正文添加到http4s请求

scala - 如何使IntelliJ显示Scala编译弃用警告