tryParse<R extends num, I extends num> static method
Parse source as a complex literal and return its value.
Like Complex.parse, except that this function returns null
for invalid inputs instead of throwing.
Example:
var value = Complex.tryParse('3.14'); // 3.14+0i
value = Complex.tryParse(' 3'); // 3+0i
value = Complex.tryParse('1+5i'); // 1+5i
value = Complex.tryParse('.0'); // 0.0
value = Complex.tryParse(' 1+ 5i '); // 1+5i
value = Complex.tryParse('6i'); // 0+6i
value = Complex.tryParse('a'); // null
value = Complex.tryParse('0xFF'); // 255+0𝑖
Implementation
static Complex<R, I>? tryParse<R extends num, I extends num>(String source) {
final split = _spliter(source);
R? r;
I? i;
if (split.isEmpty || split.length != 2) {
return null;
}
r = _typeParsing<R>(split[0]);
i = _typeParsing<I>(split[split.length - 1]);
if (r == null || i == null) {
return null;
}
return Complex<R, I>(r, i);
}