parse 静态方法

num parse(
  1. String input, [
  2. @已弃用 num onError(
    1. String input
    )?
])

将包含数字字面量的字符串解析为数字。

该方法首先尝试将 input 读取为整数(类似于 int.parse 不带基数)。如果失败,它尝试将 input 解析为双精度浮点数(类似于 double.parse)。如果这也失败,它将抛出 FormatException

而不是抛出并立即捕获 FormatException,最好使用 tryParse 来处理潜在的解析错误。

对于任何数字 n,此函数满足 identical(n, num.parse(n.toString()))(除了当 n 是具有负载的 NaN double 时)。

参数 onError 已弃用并将被删除。而不是使用 num.parse(string, (string) { ... }),您应该使用 num.tryParse(string) ?? (...)

示例

var value = num.parse('2021'); // 2021
value = num.parse('3.14'); // 3.14
value = num.parse('  3.14 \xA0'); // 3.14
value = num.parse('0.'); // 0.0
value = num.parse('.0'); // 0.0
value = num.parse('-1.e3'); // -1000.0
value = num.parse('1234E+7'); // 12340000000.0
value = num.parse('+.12e-9'); // 1.2e-10
value = num.parse('-NaN'); // NaN
value = num.parse('0xFF'); // 255
value = num.parse(double.infinity.toString()); // Infinity
value = num.parse('1f'); // Throws.

实现

static num parse(String input, [@deprecated num onError(String input)?]) {
  num? result = tryParse(input);
  if (result != null) return result;
  throw FormatException(input);
}