gpt4 book ai didi

scala - 使用函数从集合创建 map

转载 作者:行者123 更新时间:2023-12-01 10:44:58 25 4
gpt4 key购买 nike

我想通过为集合提供映射函数来从集合创建 map 。它基本上等同于普通 map 方法所做的,只是我希望它返回一个 Map,而不是一个平面集合。

我希望它有一个像这样的签名

def toMap[T, S](T => S): Map[T, S]

像这样调用时

val collection = List(1, 2, 3)
val map: Map[Int, String] = collection.toMap(_.toString + " seconds")

map 的期望值为

Map(1 -> "1 seconds", 2 -> "2 seconds", 3 -> "3 seconds")

该方法等同于

val collection = List(1, 2, 3)
val map: Map[Int, String] = collection.map(x => (x, x.toString + " seconds")).toMap

Scala中有这样的方法吗?

最佳答案

scalaz 有一个用于 Functorsfproduct 方法,它返回正确形状的东西,以便在结果上调用 .toMap:

scala> import scalaz._,Scalaz._
import scalaz._
import Scalaz._

scala> val collection = List(1, 2, 3)
collection: List[Int] = List(1, 2, 3)

scala> collection.fproduct(_.toString + " seconds").toMap
res0: scala.collection.immutable.Map[Int,String] = Map(1 -> 1 seconds, 2 -> 2 seconds, 3 -> 3 seconds)

关于scala - 使用函数从集合创建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com