Dart でStringをint型にしたいがをparse出来なかったとき別のデフォルトの値を入れたい

1 min read読了の目安(約300字

結論

こうすれば良い

final value = "あ"; // 変換したい値

print(
  int.tryParse(value ?? '') ?? 0
);
// 0
// "あ"はint型に変換されないので0が表示される

どうなってるの?

tryParseとは

tryParseは変換できなかった場合はnullを返す仕組みになっている。

なぜvalue ?? ''

なぜvalue ?? '' としているのかというとvalueにはnullが入るとエラーが出てしまうため。

final value = null;

print(
  int.tryParse(value) ?? 0
);
// エラー
// tryParseの引数はString型のみ