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 (isZero) {
    return '0';
  }
  final result = StringBuffer();
  for (int deg = degree; deg >= 0; deg--) {
    int coefficient = getCoefficient(deg);
    if (coefficient != 0) {
      if (coefficient < 0) {
        if (deg == degree) {
          result.write('-');
        } else {
          result.write(' - ');
        }
        coefficient = -coefficient;
      } else {
        if (result.length > 0) {
          result.write(' + ');
        }
      }
      if (deg == 0 || coefficient != 1) {
        final alphaPower = _field.log(coefficient);
        if (alphaPower == 0) {
          result.write('1');
        } else if (alphaPower == 1) {
          result.write('a');
        } else {
          result.write('a^');
          result.write(alphaPower);
        }
      }
      if (deg != 0) {
        if (deg == 1) {
          result.write('x');
        } else {
          result.write('x^');
          result.write(deg);
        }
      }
    }
  }
  return result.toString();
}