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

2023-11-26

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


函数和元组被编译器重写为对象,并且仅Function0通过Function22 and Tuple0通过Tuple22被定义。我认为 22 的限制完全是任意的,但限制的原因却并非如此。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 scala 函数限制为 22 个参数? 的相关文章

  • Scala 中的类型安全原语

    我希望在我的 Scala 代码中拥有类型安全的原语 子类 而不会受到装箱性能的影响 对于延迟非常低的应用程序 例如 这样的事情 class Timestamp extends Long class ProductId extends Lon
  • 使方法真正内联

    我伪造了一个简单的例子来检查 inline注释行为 import scala annotation tailrec object InlineTest extends App inline private def corec x Int I
  • K均值||用于 Spark 上的情感分析

    我正在尝试编写基于Spark的情感分析程序 为此 我使用了 word2vec 和 KMeans 聚类 从 word2Vec 我在 100 维空间中得到了 20k 个单词 向量集合 现在我正在尝试对这个向量空间进行聚类 当我使用默认并行实现运
  • 将参数传递给 Scala 对象

    是否可以从外部对象初始化 Scala 对象 我尝试初始化的 Scala 对象没有任何 Companion 类 这是一个例子 object ObjectA val mongoDBConnectionURI This is the Val th
  • 测试期权价值的更好方法?

    我经常发现自己Option T 对于某些类型T并希望根据某个值来测试期权的价值 例如 val opt Some oxbow if opt isDefined opt get lakes do something 以下代码是等效的 并且不需要
  • 作为单例集合的选项 - 现实生活中的用例

    标题几乎概括了这一点 Option作为单例集合有时会令人困惑 但有时它允许一个有趣的应用程序 我脑子里有一个例子 并且想了解更多这样的例子 我唯一的例子是运行for对的理解Option List T 我们可以执行以下操作 val v Som
  • 我可以使用从 Java 实现 java 接口的 scala 类吗?

    我正在学习 Scala 很好奇是否可以 创建一个在 Scala 中实现 Java 接口的对象 将对象编译成类文件并将其打包 使用 Java 中的对象 我想在 scala 中实现一个自定义的 lucene 查询解析器 并能够让其他人从 jav
  • 错误:使用替代方法写入重载方法值:

    我正在尝试读取固定宽度的文件并将其写入文本文件 下面是代码 输入文件布局字段的长度 4 10 3 5 3 1 1 5 7 094482018 07 10 022 14012 000 0 30000A 002290 059412018 07
  • scala 元组拆包

    我知道这个问题已经以不同的方式出现过很多次 但我仍然不清楚 有没有办法达到以下目的 def foo a Int b Int foo a b right way to invoke foo foo getParams is there a w
  • 方法返回类型的类型推断

    当存在显式方法时 为什么 Scala 无法推断方法的返回类型return方法中使用的语句 例如 为什么下面的代码可以编译 object Main def who 5 def main args Array String println wh
  • 在 Scala 中定义具有多个隐式参数的函数

    如何定义具有多个隐式参数的函数 def myfun arg String implicit p1 String implicit p2 Int doesn t work 它们必须全部放入一个参数列表中 并且该列表必须是最后一个 def my
  • Scala 中的 Case 对象与枚举

    是否有关于何时使用的最佳实践指南案例类 http en wikipedia org wiki Scala 28programming language 29 Case classes and pattern matching 或 case
  • scala 中“迭代 Seq 或如果为空”的更好版本?

    是否有更短 更好的方法来执行以下操作 mySeq map elmt gt do stuff if mySeq isEmpty some other stuff Ps 我正在使用 PlayFramework 这意味着在模板中使用 所以如果我错
  • 首次使用 SBT - 检索代理背后的依赖项时出现问题

    我已经下载了 SBT sbt 0 13 15 zip 并将其解压缩 但在运行 sbt bat 时遇到问题 最初 我遇到了代理问题 当我发现需要指定时修复了这些问题onlyhttpsconfig 而不是 http 的 当提供两者时 它使用的是
  • 使用 Scala 的解析器组合器时如何忽略不匹配的前面文本?

    我真的很喜欢解析器组合器 但是当我不关心相关文本之前的文本时 我对我提出的提取数据的解决方案并不满意 考虑这个小型解析器来获取货币金额 import scala util parsing combinator case class Amou
  • 如何访问jar中的静态资源(对应于src/main/resources文件夹)?

    我有一个火花流 https spark apache org streaming 使用 Maven 作为 jar 构建并使用spark submit脚本 应用程序项目布局遵循标准目录布局 myApp src main scala com m
  • 在 Scala 中避免 while 循环有什么好处吗?

    阅读专家撰写的 Scala 文档可以得到这样的印象 尾递归比 while 循环更好 即使后者更简洁 更清晰 这是一个例子 object Helpers implicit class IntWithTimes val pip Int Recu
  • scala案例类复制实现

    我找不到 scala 中案例类的复制是如何实现的 我可以以某种方式检查一下吗 我虽然 Intellij 可以指出我的实现 但它不想跳转 我不知道为什么 您可以使用以下命令检查 scala 案例类输出scalac print ClassNam
  • 如何创建独立的电梯 Web 应用程序?

    如何制作独立的电梯应用程序 使用哪些工具 库 与在某些应用程序服务器中使用 lift 应用程序作为战争相比 性能如何 使用 onejar maven 插件http onejar maven plugin googlecode com svn
  • Scala 不可变 Map 速度慢

    当我创建地图时 我有一段代码 val map gtfLineArr 8 split map split collect case Array k v gt k v toMap 然后我使用这张地图来创建我的对象 case class MyOb

随机推荐

  • Qt/win:showMaximized() 在无框窗口上重叠任务栏

    我正在构建一个具有自己的自定义镶边的应用程序 我通过设置标志关闭了默认窗口边框 this gt setWindowFlags Qt FramelessWindowHint 设置此标志并关闭默认窗口边框后 任何对以下内容的调用 this gt
  • 当我传递带有前导零的字符串时,为什么 parseInt() 返回意外结果?

    parseInt 1 1 parseInt 01 1 parseInt 5 5 parseInt 05 5 parseInt 8 8 But why parseInt 08 0 parseInt 09 0 始终使用以基数作为第二个参数的重载
  • 如何设置x&y轴的对数刻度刻度?

    我想绘制一个没有科学记数法的对数刻度图 import matplotlib as mpl import matplotlib pyplot as plt plt plot np arange 0 10 0 1 plt xscale log
  • PDO fetchAll 将键值对分组到 assoc 数组中

    时不时地 当我遇到类似以下的查询时 我会遇到这样的情况 SELECT key value FROM settings 在这种情况下 我想获得一个关联数组 使用的值key value作为该数组的相应条目 例如如果数据库包含 first nam
  • 如何在renderscript和android框架之间交换数据?

    我是渲染脚本的新手 我正在尝试使用 renderscript 添加两个数组元素 我可以通过以下方式将值从 Android 传递给 renderscriptinvoke add方法 为了从 renderscript 返回 Android 框架
  • 如何在隐藏和查看密码之间切换

    有没有一种聪明的方法让用户在 android EditText 中在隐藏和查看密码之间切换 许多基于 PC 的应用程序允许用户执行此操作 自支持库 v24 2 0 以来 这确实很容易实现 你需要做的只是 将设计库添加到您的依赖项中 depe
  • IB Designables:无法渲染和更新 Google 地图的自动布局状态

    我在我的项目中使用 GoogleMaps Pod 我的故事板之一有错误 错误 IB Designables 无法渲染和更新 MapViewController 的自动布局状态 dlopen GoogleMaps framework 1 找不
  • SQL Server 查询 LEFT JOIN、SUM 和 GROUP BY,我被难住了!

    我正在绞尽脑汁地对付这个 我有 3 个 SQL Server 2005 表 用户奖 id awardamount userid dateawarded awardtypeid user id firstname lastname 奖项类型
  • 如何使用 Boost 创建关键部分?

    对于我的跨平台应用程序 我已经开始使用 Boost 但我无法理解如何实现代码来重现 Win32 临界区或 Net 的行为lock 我想写一个方法Foo可以从不同的线程调用来控制对共享字段的写入操作 应允许同一线程内的递归调用 Foo gt
  • C++:偏移到 std::vector 迭代器的正确转换是什么?

    我有一个函数需要std vector双精度数 并将它们复制到另一个向量 但以特定的偏移量 假设有足够的空间 void copy stuff const std vector
  • MarkerWithLabel 停止正常工作

    昨天 2014 年 3 月 4 日 我的 MarkerWithLabel Google 地图 API 应用程序 突然只显示最后一个标记 但标签全部显示 它一直工作得很好 谷歌示例位于 https google maps utility li
  • 通过 PublicKeyToken 防止外部程序集注入

    我正在使用以下代码 AppDomain CurrentDomain AssemblyLoad sender args gt var token args LoadedAssembly GetName GetPublicKeyToken if
  • 如何禁用一个类或整个包的记录器?

    我在用Apache Commons 日志记录 现在我想用SimpleLog实现 但是当我更改级别时 库中的记录器出现了 我希望它能把它们关掉 有没有一种简单的方法来更改整个包的日志级别 Log4j 可以做到这一点 我尝试过设置 org ap
  • Swift 运算符的优先级是什么?

    我想查找一些运算符的优先级 某处有所有这些的列表吗 我还没找到 更新为 Swift 3 0 斯威夫特3 0 现在有一个page在 Swift 文档中 下面列出了所有优先级组 也可以通过命令单击import Swift precedenceg
  • 本地通知的通知服务扩展

    系统将加载通知服务扩展并调用其didReceive withContentHandler iOS 10 中的本地通知 如果是的话我们该怎么做 否 接受的答案描述了通知Content扩展 允许您在展开的通知视图中呈现 ViewControll
  • 如何获取Android中支持的摄像机分辨率?

    我正在编写一个应用程序 允许用户使用手机摄像头捕捉视频 我使用自己的代码来录制视频 而不是 Android 内置的相机应用程序 一切工作正常 除了我需要能够访问支持的相机分辨率列表 以便我可以在运行时选择使用哪一个 我正在寻找类似的东西ge
  • 如何使用 ssh 使用 Nodegit 克隆 git 存储库

    我正在尝试使用库nodegit 版本0 2 4 和ssh从我们的teamforge服务器在node js中克隆git存储库 我们的服务器请求用户进行身份验证 当我尝试仅使用克隆方法而不传递选项时 我收到错误 回调无法初始化 SSH 凭据 我
  • ASP.Net WebAPI OWIN:为什么 Request.GetOwinContext() 返回 null?

    在我的生产代码中 我们遇到了 Request GetOwinContext 始终返回 null 的问题 我设置了一个小型测试 WebAPI 控制器来尝试隔离问题 public class TestController ApiControll
  • 如何正确使用 SET XACT_ABORT ON

    我们最近被空降到一个新的 ETL 项目 该项目的代码非常糟糕 我手中有一个包含 700 行和各种更新的查询 我想用它来调试它SET XACT ABORT ON 目标是如果只有一个事务失败则回滚所有事务 但我找到了几种将其存档在 StackO
  • 为什么 scala 函数限制为 22 个参数?

    并不是说我实际上已经接近这个极限 但我一直想知道 为什么他们停在Function22 Tuple22 JVM 限制 任意选择 函数和元组被编译器重写为对象 并且仅Function0通过Function22 and Tuple0通过Tuple