我目前正在尝试 Scala 中的东西,试图习惯函数式编程以及再次学习一门新语言(自上次以来已经有一段时间了)。
现在给出一个字符串列表,如果我想将它们合并成一个长字符串(例如"scala", "is", "fun" => "scalaisfun"
),我想一种方法是foldRight
对各个元素执行 a 并应用连接。另一种方法,公认要简单得多,是调用mkString
.
我在 github 上查了一下,但找不到相应函数的源代码(任何帮助将不胜感激),所以我不确定这些函数是如何实现的。从我的脑海中,我认为mkString
它更灵活,但感觉可能foldRight
在某个地方的实现中存在。这有什么道理吗?
否则,scaladocs 提到mkString
调用toString
每个相应的元素。看到它们一开始就已经是字符串,mkString
在这种特殊情况下,这可能是一个负面因素。关于两种方法的优缺点,在性能、简单/优雅等方面有什么评论吗?