Scala mergeMsg 与 def

标签 scala

我必须编写一个 mergeMsg 函数。

该函数应具有以下签名

((String, String, Double), (String, String, Double)) => (String, String, Double)

以某种方式,前一个元组的每个对象都应该添加到后一个元组的对应对象中。

我该如何写这个?

最佳答案

最简单的是使用CatsMonoids:

scala> import cats.implicits._
import cats.implicits._

scala> type Tup = (String, String, Double)
defined type alias Tup

scala> def mergeMsg(a: Tup, b: Tup): Tup = a |+| b 
mergeMsg: (a: Tup, b: Tup)Tup

scala> mergeMsg(("Hello", "World", 4.5), (" John", " Cup", 25.5))
res0: Tup = (Hello John,World Cup,30.0)

当然,你不需要定义类型别名Tup,它只是让它变得更短一点。

关于Scala mergeMsg 与 def,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46828667/

相关文章:

scala - 进行相等测试时 Scala 选项的惯用语

algorithm - Scala 提取列表中相差 1 (Ints) 的邻居

java - scala.collections.javaconverters._ 错误 : value map is not a member of java. util.Set

Scala 处理选项和从 Scala Map 抛出异常的最优雅的方式

java - 如何理解AKKA中使用的这种CCAS锁定机制?

scala - Akka 流批处理

scala - `extends` 允许调用特征中的父类(super class)型方法,但不允许自身类型

scala - 检查我在 REPL 中导入了什么?

scala - 如何与 Slick 建立 Redshift 连接?

斯卡拉 REPL : Where to find documentation on particular command?