有没有更好的方法来解析Dart中的int

Ric*_*ler 3 dart

这是关于Dart中int.parse的几个问题......

我知道在Dart中我们可以将字符串解析为int并使用以下内容捕获异常:

try {
  n = int.parse(input.value);
  // etc.
} on FormatException {
  // etc.
}
Run Code Online (Sandbox Code Playgroud)

(没关系.)

在文档中,有以下对int.parse的描述:

int parse(String source, int radix, int onError(String source))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用带有多个参数的int.parse时,我收到了编辑关于使用额外参数的投诉.我误解了文档吗?例如,如何设置基数?

kgi*_*kis 13

在Dart 2中,可以使用int.tryParse

对于无效输入,它返回null而不是抛出。您可以像这样使用它:

int val = int.tryParse(text) ?? defaultValue;
Run Code Online (Sandbox Code Playgroud)

中的onError参数int.parse已弃用。

  • 谢谢你,这真的很有帮助! (2认同)

Chr*_*ett 10

Int.parse 使用命名的可选参数.

API:

int parse(String source, {int radix, int onError(String source)})
Run Code Online (Sandbox Code Playgroud)

{ }参数列表中的around参数表示这些是可选的命名参数.(如果你[ ]在参数列表中有params,这些是可选的,位置参数)

用法示例:

int.parse("123");
int.parse("123", radix:16);
int.parse("123", onError:(source) => print("Source"));
int.parse("123", radix:16, onError:(source) => print(source));
Run Code Online (Sandbox Code Playgroud)

  • onError 已弃用,不应使用。 (2认同)