# last property

E last

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

    E get last {
      Iterator<E> it = iterator;
      if (!it.moveNext()) {
        throw IterableElementError.noElement();
      }
      E result;
      do {
        result = it.current;
      } while (it.moveNext());
      return result;
    }