Подскажите почему в конструкторе класса не происходит инициализация переменной?
class IPAddress {
late List<int> octets;
IPAddress(List<int> octets) {
print('ok');
if (octets.length != 4) {
throw ArgumentError('4 значения должно быть');
}
for (int i = 0; i < 4; i++) {
if (octets[i] < 0 || octets[i] > 255) {
throw RangeError.range(octets[i], 0, 255);
} else {
this.octets.add(octets[i]);
}
}
}
int operator [](int index) {
if (0 > index || index > 3) {
throw RangeError.range(index, 0, 3);
}
return octets[index];
}
void operator []=(int index, int value) {
if (0 > index || index > 3) {
throw RangeError.range(index, 0, 3);
}
octets[index]=value;
}
IPAddress operator &(IPAddress other) {
List <int> temp = [];
for(int i=0; i<4;i++){
temp.add(octets[i] & other.octets[i]);
}
return IPAddress(temp);
}
IPAddress operator |(IPAddress other) {
List <int> temp = [];
for(int i=0; i<4;i++){
temp.add(octets[i] | other.octets[i]);
}
return IPAddress(temp);
}
IPAddress operator ^(IPAddress other) {
List <int> temp = [];
for(int i=0; i<4;i++){
temp.add(octets[i] ^ other.octets[i]);
}
return IPAddress(temp);
}
}