Метод mapToString
String mapToString(Возвращает строку, представляющую заданный массив. Возвращаемая строка выглядит так: '{key0: value0, key1: value1, ... keyN: valueN}'. Для представления каждого ключа или значения используется значение, возвращаемое его методом toString.
Если коллекция карт содержит ссылку на себя, либо напрямую в качестве ключа или значения, либо косвенно через другие коллекции или карты, содержащая ссылка отображается как '{...}'. Это предотвращает бесконечный регресс, который в противном случае произойдёт. Например, вызов этого метода для карты, единственная запись которой сопоставляет строковый ключ 'я' со ссылкой на карту, вернёт '{me: {...}}'.
Типичная реализация метода toString карты просто возвращает результаты применения этого метода к коллекции.
Исходный код
static String mapToString(Map m) {
// Reuse the list in IterableBase for detecting toString cycles.
if (_isToStringVisiting(m)) {
return '{...}';
}
var result = new StringBuffer();
try {
_toStringVisiting.add(m);
result.write('{');
bool first = true;
m.forEach((k, v) {
if (!first) {
result.write(', ');
}
first = false;
result.write(k);
result.write(': ');
result.write(v);
});
result.write('}');
} finally {
assert(identical(_toStringVisiting.last, m));
_toStringVisiting.removeLast();
}
return result.toString();
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-collection/Maps/mapToString.html