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() {
  final numerator = <String>[];
  final denominator = <String>[];
  final keys = _terms.keys.toList()..sort();

  for (final key in keys) {
    final exp = _terms[key]!;
    final absExp = exp.abs();
    final token = absExp == 1 ? key : '$key^$absExp';
    if (exp > 0) {
      numerator.add(token);
    } else {
      denominator.add(token);
    }
  }

  final numeratorText = numerator.isEmpty ? '1' : numerator.join('*');
  if (denominator.isEmpty) return numeratorText;

  return '$numeratorText/${denominator.join('*')}';
}