2013-08-23 29 views
4

在Dart中,可以通过两种方法有效地连接字符串:可以使用StringBuffer类,然后将其转换为字符串,也可以将所有子字符串放入列表中,然后调用join('')。为什么要在Dart中使用StringBuffer而不是Iterable.join?

我不明白,什么是StringBuffer的加号,为什么我应该使用它而不是加入列表。有人能解释一下吗?

回答

5

没有太大的区别。如果您已经有字符串列表,则使用StringBuffer.writeAllIterable.join没有区别。该Iterable.join方法使用StringBuffer internaly:

String join([String separator = ""]) { 
StringBuffer buffer = new StringBuffer(); 
buffer.writeAll(this, separator); 
return buffer.toString(); 
} 

Dart documentation(点击右边按钮的代码)。

0

StringBuffer效率更高,因为它在调用toString之前不会创建字符串对象。

Seth Lad博客讨论了here的好处,并附上一些数字来备份它。

还有一个类似的博客文章关于这个here

+0

对不起,但这不是我的问题的答案。我明白,StringBuffer比使用'+'连接更高效,但问题是关于'Iterable.join'和'StringBuffer'。 –

相关问题