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