Spec-Zone.ru › Dart 1

dart:collection

Метод mapToString

String mapToString(Map m)

Возвращает строку, представляющую заданный массив. Возвращаемая строка выглядит так: '{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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API