在scala中有什么方法可以让一个函数返回一个map类型的输出?
我能找到的唯一方法是在最后使用.toMap
例如:
val names: List[String] = List("abc","abcd","abcde")
val out_map: Map[String,Int] = names.map(x=>x->x.length())
结果
Found: List[(String, Int)]
Required: Map[String, Int]
只有我这么做才有效
val out_map: Map[String,Int] = names.map(x=>x->x.length()).toMap
这是返回Map类型的“方式”吗?总是必须在以后转换元组集合吗?或者,我是否遗漏了一些语法来直接声明匿名函数,这样就不需要.toMap
了?
3条答案
按热度按时间9lowa7mx1#
.map
方法名称指的是mapping a function-调用x.map(f)
应理解为“使用函数f
Mapx
中的每个值-其中Map意味着将每个值转换为函数的参数,并在此参数处获取函数的值。这与
Map
相似但不完全相同,Map
表示一个数据结构,通常称为字典。在纯数学中,“Map”和“Map结构”可能相似/相关,但它们在编程语言中的实现侧重于不同的事情,不应该混淆。要将标准库的元组集合转换为Map
,您应该调用.toMap
。2ul0zpep2#
是的,这是相当标准的方法-将列表转换为元组,并在其上使用
toMap
:qnyhuwrf3#
尝试使用:
它使用Map工厂方法,并将键-值对作为参数。