toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  if (isRecordType) {
    return [
      '(',
      positionalRecordFields.map((t) => t.toString()).join(', '),
      if (positionalRecordFields.isNotEmpty ||
          positionalRecordFields.length == 1)
        ',',
      if (namedRecordFields.isNotEmpty) ...[
        ' {',
        namedRecordFields.map((f) => '$f ${f.recordFieldName!}').join(', '),
        '}',
      ],
      ')',
      if (nullable) '?',
    ].join();
  }

  var genericsString = generics.isNotEmpty ? '<${generics.join(',')}>' : '';
  var nullableString = nullable ? '?' : '';
  var urlString = url != null ? '$url:' : '';
  var classRepr = isVectorType ? '$className($vectorDimension)' : className;
  return '$urlString$classRepr$genericsString$nullableString';
}