我必须编写一个 mergeMsg
函数。
该函数应具有以下签名
((String, String, Double), (String, String, Double)) => (String, String, Double)
以某种方式,前一个元组的每个对象都应该添加到后一个元组的对应对象中。
我该如何写这个?
最佳答案
最简单的是使用Cats
和Monoids
:
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/