iterableToFullString 静态方法
将一个 Iterable 转换为字符串。
将每个元素转换为字符串,并以 ", " 分隔结果。然后使用 leftDelimiter
和 rightDelimiter
包装结果。
与 iterableToShortString 不同,此转换不会省略任何元素或对结果的大小进行限制。
处理循环引用,其中将某个元素转换为字符串会导致再次将 iterable 转换为字符串。
实现
static String iterableToFullString(Iterable iterable,
[String leftDelimiter = '(', String rightDelimiter = ')']) {
if (isToStringVisiting(iterable)) {
return "$leftDelimiter...$rightDelimiter";
}
StringBuffer buffer = StringBuffer(leftDelimiter);
toStringVisiting.add(iterable);
try {
buffer.writeAll(iterable, ", ");
} finally {
assert(identical(toStringVisiting.last, iterable));
toStringVisiting.removeLast();
}
buffer.write(rightDelimiter);
return buffer.toString();
}