iterableToShortString 静态方法

String iterableToShortString(
  1. Iterable iterable,
  2. [String leftDelimiter = '(',
  3. String rightDelimiter = ')]
)

将一个 Iterable 转换为一个类似 Iterable.toString 的字符串。

允许使用除了 '(' 和 ')' 之外的其它分隔符。

处理循环引用,其中将其中一个元素转换为字符串可能会导致再次将 iterable 转换为字符串。

实现

static String iterableToShortString(Iterable iterable,
    [String leftDelimiter = '(', String rightDelimiter = ')']) {
  if (isToStringVisiting(iterable)) {
    if (leftDelimiter == "(" && rightDelimiter == ")") {
      // Avoid creating a new string in the "common" case.
      return "(...)";
    }
    return "$leftDelimiter...$rightDelimiter";
  }
  List<String> parts = <String>[];
  toStringVisiting.add(iterable);
  try {
    _iterablePartsToStrings(iterable, parts);
  } finally {
    assert(identical(toStringVisiting.last, iterable));
    toStringVisiting.removeLast();
  }
  return (StringBuffer(leftDelimiter)
        ..writeAll(parts, ", ")
        ..write(rightDelimiter))
      .toString();
}