【问题标题】:Replacing the parameters of a function with a vector用向量替换函数的参数
【发布时间】:2019-06-17 17:00:24
【问题描述】:

在 Scala 中,如果我有一个函数 f(X, Y, Z) 是否可以传递一个代表 (X, Y, Z) 的变量 W,所以我可以使用 f(W) 而不是 f(X ,Y,Z)?如果是这样,如何做到这一点?

【问题讨论】:

标签: scala argument-unpacking


【解决方案1】:

如果您的意思是传递一个 tuplecase class 而不是三个参数。那么是的,你可以。

首先,如果是函数,你可以:f.tupled(tuple)
如果是方法,则:(m _).tupled(tuple)。 _(基本一样,只是用eta-expansion把方法变成了函数)。

如果你有一个 case 类 而不是一个元组,你可以把它的一个实例变成一个元组:W.unapply(w).get (其中W 是伴随对象案例类,w 是实例).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多