【发布时间】:2019-03-23 01:35:57
【问题描述】:
我是 Scala 的新手,正在尝试掌握 Option。我在尝试着 根据字符串键对以下列表的双精度值成员求和:
val chmembers = List(("Db",0.1574), ("C",1.003), ("Db",15.4756), ("D",0.003), ("Bb",1.4278), ("D",13.0001))
总结为:
List((D,13.0031), (Db,15.633000000000001), (C,1.003), (Bb,1.4278))
我当前的代码是
def getClassWeights: List[(Option[String], Option[Double])] = {
chMembers.flatMap(p => Map(p.name -> p.weight))
.groupBy(_._1).mapValues(_.map(_._2)sum).toList
}
但是这不会编译并返回:
'找不到参数 num 的隐含值: 数字[选项[双]]'。 我不明白“数字”来自哪里或如何处理它。
如有任何建议,我将不胜感激。提前致谢。
【问题讨论】:
-
为什么要返回
Option[_]?什么条件应该创建None值?
标签: scala