🎯
【Dart】String型("0", "42")の値をint型(0, 42)に変換したいがparse出来なかったとき別の初期値を入れたい
結論
こうすれば良い
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型のみ
Discussion