# last property

int last
override

Returns the last element.

Throws a StateError if `this` is empty. Otherwise may iterate through the elements and returns the last one seen. Some iterables may have more efficient ways to find the last element (for example a list can directly access the last element, without iterating through the previous ones).

## Implementation

    int get last {
      if (string.length == 0) {
        throw new StateError('No elements.');
      }
      int length = string.length;
      int code = string.codeUnitAt(length - 1);
      if (_isTrailSurrogate(code) && string.length > 1) {
        int previousCode = string.codeUnitAt(length - 2);
        if (_isLeadSurrogate(previousCode)) {
          return _combineSurrogatePair(previousCode, code);
        }
      }
      return code;
    }