如何以最佳方式传递元组参数?

2024-05-12

如何以最佳方式传递元组参数?

Example:

def foo(...): (Int, Int) = ...

def bar(a: Int, b: Int) = ...

现在我想传递的输出foo to bar。这可以通过以下方式实现:

val fooResult = foo(...)
bar(fooResult._1, fooResult._2)

这种方法看起来有点难看,尤其是当我们处理一个n-元组与n > 2。另外,我们必须将 foo 的结果存储在一个额外的值中,因为否则foo必须使用多次执行bar(foo._1, foo._2).

有没有更好的方法来传递元组作为参数?


有一个特殊的tupled每个函数都可用的方法:

val bar2 = (bar _).tupled  // or Function.tupled(bar _)

bar2需要一个元组(Int, Int)(与...一样bar论据)。现在你可以说:

bar2(foo())

如果你的方法实际上是函数(注意val关键字)语法更令人愉快:

val bar = (a: Int, b: Int) => //...
bar.tupled(foo())

See also

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

如何以最佳方式传递元组参数? 的相关文章

  • Scala - 如何解决“值不是 Nothing 的成员”错误

    此示例代码基于 Atmosphere 类 但如果有人可以让我了解该错误的一般含义 我想我可以找出任何特定于 Atmosphere 的解决方案 val bc BroadcasterFactory getDefault lookup broad
  • Scala 相当于 Java 的 Number

    我正在尝试为数值域类型构建类型层次结构 例如AYear is an Int 这是一个Number a Percentage is a Double 这是一个Number等等 我需要层次结构以便我可以调用toInt or toDouble关于
  • C++11 在运行时索引元组而不使用 switch 的方法

    我有一段 c 11 代码 如下所示 switch var case 1 dosomething std get lt 1 gt tuple case 2 dosomething std get lt 2 gt tuple 有什么办法可以把这
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • Python 类 __div__ 问题

    元组代表分数 我试图通过乘以倒数来除以分数 class Test def init self self x 1 2 def div self div fraction return self x 0 div fraction 1 self
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • Scala Tuple2Zipped 与 IterableLike zip

    两种实现有什么区别 这个比那个好吗 有一篇博客文章说 Tuple2Zipped 性能更好 但没有提供原因 并且查看源代码我没有看到差异 val l1 List 1 2 3 val l2 List 5 6 7 val v1 l1 zip l2
  • Scala 模式匹配变量绑定

    为什么提取器返回时不能以 样式绑定变量Option
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • Scala 特性:val/def 和 require

    下面的代码抛出IllegalArgumentException trait T val x Long require x gt 0 object T extends App val y new T val x 42L 而以下情况则不然 tr
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • 使用可变数量的 for 循环创建元组

    Given n and k 我需要创建所有长度的元组k其条目来自range n 0 到 n 1 使得元组的条目按字典顺序排列 并且有特定格式的括号 具体来说 元组从内到外每对都用括号括起来 例如 如果n 3 and k 4 那么我希望输出包
  • 如何在 Spark Dataframe 中显示完整的列内容?

    我正在使用 Spark csv 将数据加载到 DataFrame 中 我想做一个简单的查询并显示内容 val df sqlContext read format com databricks spark csv option header
  • 使用 Apache Spark 读取 JSON - `corrupt_record`

    我有一个json file nodes看起来像这样 toid osgb4000000031043205 point 508180 748 195333 973 index 1 toid osgb4000000031043206 point
  • 向 Scala Swing Panel 添加标签时出现类型不匹配错误

    我有这个课程扩展FlowPanel我正在尝试向其中添加标签 import java awt Label Color import scala swing import scala util Random class MyPanel exte
  • 在 Scala 中调用 WebSocket 中的方法

    我是 scala Play 框架和 Akka 的新手 我的函数定义为 def socket WebSocket accept String String request gt ActorFlow actorRef out gt MyWebS
  • Spark中如何获取map任务的ID?

    Spark中有没有办法获取map任务的ID 例如 如果每个映射任务都调用用户定义的函数 我可以从该用户定义的函数中获取该映射任务的 ID 吗 我不确定您所说的地图任务 ID 是什么意思 但您可以使用以下方式访问任务信息TaskContext
  • 如何访问 Scala XML 中的父元素

    The scala xml包表示带有标记树节点的 XML 但是这棵树在 Scala 2 7 中是单向的吗 因为似乎没有办法访问Elem给定的父级Elem 这似乎同样适用于父母Document 例如 在 XOM 中你有getParent an
  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • 按字符分割字符串

    scala 有一个标准的分割字符串的方法StringOps split 但它的行为有点让我惊讶 演示一下 使用快捷便利功能 def sp str String str split toList 以下表达式全部计算结果为 true sp Li

随机推荐

  • 如何从类似于 eclipse 的命令行创建可运行的 jar 文件

    我知道 eclipse 会生成一个可运行的 jar 文件 其中提取并包含在该 jar 文件中的所有库 jar 文件 从命令提示符手动创建 jar 文件时如何执行类似的操作 我需要将所有 lib jar 解压到类文件夹中吗 目前我正在使用 j
  • 无限循环中的 JavaScript 警报消息

    无限循环中的警报框 在这里我尝试在两个连续字段上放置弹出警报消息 这样它们就不能留空 我知道为什么会发生这种情况 因为当第一个函数的 onblur 事件启动时 它会将焦点放在第二个字段上 当它跳回第一个时 第二个文本字段的 onblur 启
  • AWS SDK S3 node.js 连接到本地 MinIO 服务器

    我有用 Node js 编写的应用程序服务器 它将文件上传到 AWS S3 存储 为此我正在使用https www npmjs com package aws sdk https www npmjs com package aws sdk当
  • 用 Fragment 替换 ViewPager - 然后导航回来

    我有一个最初托管 ViewPager 的活动 连接到 FragmentPagerAdapter 当用户单击 ViewPager 子片段内的项目时 我使用 FragmentTransaction 将空容器视图替换为我想要导航到的新片段 如果我
  • 如何获取所有数字列(嵌套与否)的“.describe()”统计信息?

    获取数据帧 或列表或数组 中任何列的简单描述性统计数据的最佳方法是什么 无论是否嵌套 一种高级 df describe 还包括带有数值的嵌套结构 就我而言 我有一个包含许多列的数据框 有些列的每一行都有一个数字列表 在我的例子中是时间序列结
  • 为什么我必须将 TS 文件导入为 JS 文件?

    我正在使用 WebdriverIO 帮助进行一个测试项目 我们在 TS serting 方面遇到了巨大的困难 因为 TS 转译器似乎可以正确解析 TS 模块 但解析在运行时失败 例如 如果我有一个模块 config config ts ex
  • 找不到模块“lodash”

    今天我尝试了解有关 Google Web Starter Kit 的更多信息 因此我关注了这些说明 https developers google com web fundamentals getting started web start
  • 查找连续的组合[重复]

    这个问题在这里已经有答案了 可能的重复 Python 中的滚动或滑动窗口迭代器 https stackoverflow com questions 6822725 rolling or sliding window iterator in
  • 已取消的邮件图标显示“不支持”

    发送到 Outlook 的已取消邀请电子邮件包含 不支持 附件 这是我用来取消电子邮件邀请的 ics 有人可以帮助我理解我在这里缺少什么吗 PS Gmail 能够解析此 ics 并从日历中删除该事件 BEGIN VCALENDAR VERS
  • 使用 TLS/SSL 保护 Cassandra 通信

    我们希望保护 Cassandra 免受中间人攻击 有没有办法配置 Cassandra 使客户端 服务器和服务器 服务器 复制 通信采用 SSL 加密 谢谢 简短的回答 不 对于客户端 服务器 节俭 151 https issues apac
  • Grails 渲染 PDF 文件

    我正在尝试在网页中呈现 PDF 文件 但使用以下语法时 我得到了一个奇怪的字符组合 render file new File path to file pdf fileName myPdfFile pdf 有谁知道除了上面的行之外我还需要添
  • 如何返回n对括号的所有有效组合?

    def paren n lst for x in range n current string join lst solutions list for i in range len current string 1 close curren
  • 仅使用 GRPC 连接到对话流 StreamingDetectIntent,卡在等待 responseStream.MoveNext

    我正在尝试将 DialogFlow API v2 与 Unity 结合使用 由于 Unity 还没有官方 SDK 所以我使用了 Grpc beta unity SDK 以及使用 Grpc 工具中的 Protobuf 和 protoc 创建的
  • 从底部工作表对话框片段中获取值

    我从片段A开始bottomSheetDialogFragment 我想从该bottomSheetDialogFragment中选择日期 然后将其设置在片段A中 选择日期已经完成 我只想将其获取到片段A中以在某些字段中设置它 我怎样才能得到这
  • git:如何查明某个分支是否有拉取请求?

    我在 git 分支上 有没有办法查看该分支是否有拉取请求 在这种特殊情况下 Atlassian Stash 用于管理拉取请求 当然我可以使用Stash的Web界面来搜索拉取请求 但我也可以仅使用 git 命令行工具从脚本执行此操作吗 Cor
  • Gradle 无法在新的 Android Studio 2.0 中同步我的项目

    我刚刚将 Android Studio 从 1 5 升级到 2 0 即安装了全新版本 升级似乎进行得很顺利 但是当我打开项目时 当 Gradle 同步我的项目时 我遇到了问题 Gradle 同步运行几分钟后 我收到此错误 Failed to
  • 使用 Byte Buddy 拦截对 Java 8 lambda 表达式的调用

    我尝试使用 Byte Buddy 拦截对方法的调用和对 Java 8 lambda 表达式的调用AgentBuilder如下 static final Instrumentation inst ByteBuddyAgent install
  • 求 matplotlib 中绘制的两条曲线之间的面积(fill_ Between area)

    我有一个清单x and y两条曲线的值 两者都有奇怪的形状 而且我没有它们中任何一个的函数 我需要做两件事 绘制它并对曲线之间的区域进行着色 如下图所示 求曲线之间阴影区域的总面积 我可以绘制这些曲线之间的区域并对其进行着色fill bet
  • 如何使用 jQuery 在第二次单击时反转 CSS 动画

    我制作了以下菜单图标 CSS 动画 当我点击它时会触发它 当我使用 jQuery 第二次单击它时 我想使其反向动画 path1 stroke dasharray 33px stroke dashoffset 33px animation l
  • 如何以最佳方式传递元组参数?

    如何以最佳方式传递元组参数 Example def foo Int Int def bar a Int b Int 现在我想传递的输出foo to bar 这可以通过以下方式实现 val fooResult foo bar fooResul