length property

  1. @override
int get length
override

Return the length of ComplexArray

Examples

var list = ArrayComplex([
  Complex(real: 3.0, imaginary: 4.0),
  Complex(real: 3.0, imaginary: 4.0) ,
  Complex(real: 3.0, imaginary: 4.0)]);

print(list.length);

/* output:
3
*/

Implementation

@override
int get length => l.length;
  1. @override
set length (int newLength)
override

Setting the length changes the number of elements in the list.

The list must be growable. If newLength is greater than current length, new entries are initialized to null, so newLength must not be greater than the current length if the element type E is non-nullable.

final maybeNumbers = <int?>[1, null, 3];
maybeNumbers.length = 5;
print(maybeNumbers); // [1, null, 3, null, null]
maybeNumbers.length = 2;
print(maybeNumbers); // [1, null]

final numbers = <int>[1, 2, 3];
numbers.length = 1;
print(numbers); // [1]
numbers.length = 5; // Throws, cannot add `null`s.

Implementation

@override
set length(int newLength) {
  if (newLength < 0) {
    throw FormatException(
        'newLength must be greater equal than 0 (newLength >= 0)');
  }

  var aux = l.map((element) => element).toList();

  if (newLength == 0) {
    l = [];
  } else if (newLength > l.length) {
    l = [];
    aux.forEach((element) {
      l.add(element);
    });
    for (var i = l.length; i < newLength; i++) {
      l.add(Complex());
    }
  } else if (newLength < length) {
    l = [];
    for (var i = 0; i < newLength; i++) {
      l.add(aux[i]);
    }
  }
}