【问题标题】:Passing tuples to function parameters将元组传递给函数参数
【发布时间】:2015-02-22 06:32:09
【问题描述】:

假设我有这个代码:

def a(x:Int,y:Int):Int = x+y

def b:(Int,Int) = (1,2)

我想完成:

  a(b)

这样做的正确方法是什么?还有更有效的方法来调用预定义的多参数函数 - 在我的情况下是 8 - 使用另一个函数的结果?

【问题讨论】:

    标签: scala


    【解决方案1】:

    怎么样:

    scala> (a _).tupled(b)
    res0: Int = 3
    
    • a 是一种方法。 a _ 为您提供部分应用的功能。
    • Function2.tupled 从您的函数创建一个元组版本。

    【讨论】:

    • 顺便问一下专家,这样效率高吗?
    • 每次调用的开销:一个实例创建 (Function2) 和对“tupled”的调用。为您的用例测量它!你可以使用 JMH (Java Microbenchmark Harness) 来检查。还有一个 sbt 插件:github.com/ktoso/sbt-jmh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 2012-05-24
    相关资源
    最近更新 更多