gpt4 book ai didi

scala - 将 map 对象作为可迭代对象的 map 方法的参数传递

转载 作者:行者123 更新时间:2023-12-04 16:06:10 25 4
gpt4 key购买 nike

我喜欢 Scala 的一点是,我经常通过尝试对我来说似乎很直观的东西来发现新的语法。例如,我不得不解码一个文本,其中每个字符都被不同的符号替换,所以我按照这个简化的例子做了:

val map = Map[Char,Char]('h' -> 'd', 'e' -> 'l', 'l' -> 'o', 'w' -> 'r', 'o' -> 'h', 'r' -> 'd', 'd' -> 'e')
println("hello world".split("\\s+").map(word => word.map(map).mkString).mkString(" "))

而且效果很好。我查看了 Array.map 的文档以了解它是如何完成的(我希望看到一些隐式转换或类似的东西)但我一无所获。有人可以解释一下如何将 Map 作为参数而不是函数传递吗?

最佳答案

在 scala 中,Map 实际上扩展了 Function1(通过其 MapLike 父级)。 Map[A,B]实际上是一个Function1[A,B],同理,List[A]是一个Function1[Int,A],Set[A]是一个Function1[A, Boolean],这些都可以作用作为函数。

scala> val m : Int => String = Map(1 -> "a", 2 -> "b")
m: Int => String = Map(1 -> a, 2 -> b)

scala> m(1)
res0: String = a

关于scala - 将 map 对象作为可迭代对象的 map 方法的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27772234/

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