首页 > 解决方案 > 如何将 List[List[Long]] 转换为 List[List[Int]]?

问题描述

在 Scala 中将a 转换List[List[Long]]为 a的最佳方法是什么?List[List[Int]]

例如,给定以下类型列表List[List[Long]]

val l: List[List[Long]] = List(List(11, 10, 11, 10, 11), List(8, 19, 24, 0, 2))

它如何转换为List[List[Int]]

标签: scalatype-conversion

解决方案


您也可以cats为此使用 lib 并编写List仿函数

import cats.Functor
import cats.implicits._
import cats.data._

val l: List[List[Long]] = List(List(11, 10, 11, 10, 11), List(8, 19, 24, 0, 2))

Functor[List].compose[List].map(l)(_.toInt)
//or
Nested(l).map(_.toInt).value

和另一种纯粹的 scala 方法(虽然不是很安全)

val res:List[List[Int]] = l.asInstanceOf[List[List[Int]]]

推荐阅读