scala - 用向量替换函数的参数
问题描述
在 Scala 中,如果我有一个函数 f(X, Y, Z) 是否可以传递一个代表 (X, Y, Z) 的变量 W,所以我可以使用 f(W) 而不是 f(X,Y, Z)? 如果是这样,如何做到这一点?
解决方案
如果您的意思是传递一个元组或案例类而不是三个参数。那么是的,你可以。
首先,如果它是一个函数,你可以f.tupled(tuple)
:
如果它是一种方法,那么:(m _).tupled(tuple)
。_(基本一样,只是用eta-expansion把方法变成了函数)。
如果你有一个案例类而不是一个元组,你可以将它的一个实例变成一个元组:(W.unapply(w).get
其中W
是案例类的伴随对象,并且w
是实例)。
推荐阅读
- webserver - 如何通过重写规则将 url 重定向到错误页面
- javascript - 语义 ui 下拉菜单活动项未更新
- segmentation-fault - 分段错误 ret2libc 攻击
- python - 如何使用 s3fs 处理大文件?
- android - ViewHolder 点击正在弄乱其他视图
- python - 如何在python中顺序填充3d矩阵?
- android - 任何人都可以检查我的 manifest.xml 吗?
- python - 在 Python 中结合工作日和时间
- python - Swift - Mac OS - 尝试从菜单应用程序启动 Python 脚本导致失败
- batch-file - 批处理脚本和正则表达式