对于FP专家来说,这似乎确实很明显,但是Scala中的无点样式有什么好处呢?在该主题上真正让我吃惊的是一个插图,它显示了无点样式在某些方面(例如,性能,优雅,可扩展性,可维护性)在性能上比在非点样式中解决相同问题的代码要好得多。

最佳答案

简而言之,它是关于避免在不需要名称的地方指定名称,请看一个简单的示例:

List("a","b","c") foreach println

在这种情况下,foreach希望接受String => Unit,这是一个接受String并返回Unit的函数(本质上,没有可用的返回,并且它纯粹是通过副作用起作用的)

此处无需将名称绑定(bind)到传递给println的每个String实例。可以说,这样做只会使代码更冗长:
List("a","b","c") foreach {println(_)}

甚至
List("a","b","c") foreach {s => println(s)}

就个人而言,当我看到的代码不是用无点样式编写的时,我就以为该绑定(bind)名称可能被使用两次或在记录该代码中具有一定意义的指示。同样,我认为无点样式是我可以更简单地对代码进行推理的标志。

关于scala - Scala中的无点样式案例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6813006/

10-10 19:34