Для структур данных вы действительно должны использовать case classes
.
В дополнение к ответу Fenixil , вы можете добавить конструктор в объект-компаньон, чтобы скрыть уродливый материал для звонящего.
Измените на case class
:
case class BN(id: Int, score: Option[Double])
Нет необходимости val
с, поскольку case classes
являются неизменяемыми по умолчанию.
Предоставить конструктор в companion object
:
object BN {
def apply(entry: (Int, Option[Double])):BN =
BN(entry._1, entry._2)
}
Использование:
val data = Map(1->Option(1.0), 2-> Option(2.0))
data.map(BN.apply)
Это дает вам: List(BN(1,Some(1)), BN(2,Some(2)))