考虑以下字符串数组:
let arrayStrings = ["H", "e", "l", "l", "o"]
为了组合它的元素(将“Hello”作为单个字符串),我们可以:
reduce it:
let reducedString = arrayStrings.reduce("", { $0 + $1 }) // "Hello"
Or join it:
let joinedString = arrayStrings.joined() // "Hello"
两者都会返回“Hello”字符串作为输出。
然而,要记住什么逻辑才能确定这样的过程的更好选择?根据性能进行比较有什么区别?
有两个原因joined
是一个更好的选择reduce
:
-
可读性
如果你想将多个字符串连接成一个字符串,为什么要使用reduce
,手动连接?如果您想要执行的任务有特定的功能,请使用它。读完代码就更容易理解了joined
than reduce
.
-
表现
joined
for String
可以比更好地实施reduce
。不一定是这样,但可以。reduce
一次对一个元素进行操作,无需了解其他元素,并传递许多临时变量。joined
拥有整个序列的知识,并且知道操作始终相同,因此可以进行优化。它甚至可以使用的内部结构String
. See String.joined 实现.
总之,始终使用更具体的实现。
请注意,上述性能原因并不是最重要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)