В настоящее время я тестирую вещи в Scala, пытаясь привыкнуть к функциональному программированию, а также снова накладывать новый язык (это было с тех пор, как в последний раз).
Теперь, учитывая список строк, если я хочу объединить их в одну длинную строку (например, "scala", "is", "fun" => "scalaisfun"
), я решил, что один из способов сделать это - сделать foldRight
и применить конкатенацию к соответствующим элементам. Другим способом, по общему признанию, гораздо проще, назвать mkString
.
Я проверил github, но не смог найти исходный код для соответствующих функций (любая помощь по этому поводу была бы оценена), поэтому я не знаю, как реализованы функции. С вершины моей головы я думаю, что mkString
более гибкий, но он чувствует, что в реализации может быть foldRight
. Есть ли в этом правда?
В противном случае скальдадоки отмечают, что mkString
вызывает toString
для каждого соответствующего элемента. Видя, что они уже начинаются с строк, это может быть одной отрицательной точкой для mkString
в данном конкретном случае. Любые комментарии о плюсах и минусах обоих методов в отношении производительности, простоты/элегантности и т.д.?