加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何使用Tuple2调用需要2个参数的函数?

发布时间:2020-12-16 19:07:49 所属栏目:安全 来源:网络整理
导读:我有一个这样的功能: def print(name:String,surname:String) { println(name + " " + surname) } 我也有一个Tuple2: val johnsmith = ("John","Smith") 当我打电话给johnsmith我得到以下错误: scala print(johnsmith) error: not enough arguments for m
我有一个这样的功能:

def print(name:String,surname:String) { println(name + " " + surname) }

我也有一个Tuple2:

val johnsmith = ("John","Smith")

当我打电话给johnsmith我得到以下错误:

scala> print(johnsmith)                                                       

error: not enough arguments for method print: (name: String,surname: String)Unit.
Unspecified value parameter surname.
       print(johnsmith)
            ^

有没有办法呢?我可以通过打印接受一个Tuple2来让它工作:

def print2(t:Tuple2[String,String]) { println(t._1 + " " + t._2) }

现在我可以这样称呼:

scala> print2(johnsmith)
John Smith

scala> print2("john","smith")
john smith

有没有我失踪的东西?

解决方法

首先将方法转换为函数,然后将两个args的函数转换为一个元组的函数.

Function.tupled(print _)(johnsmith)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读