【问题标题】:How to implement Null checker in Dart如何在 Dart 中实现 Null 检查
【发布时间】:2021-12-12 20:26:24
【问题描述】:

我是第一次学习 Dart。我学习了异常处理的概念,还了解到我们可以指定空检查器,如果变量的值变为空,它会编辑变量。我已经分享了我从导师那里得到的代码。

void main()
{
   print("Enter two numbers: ");
   var num1 = stdin.readLineSync();
   var num2 = stdin.readLineSync();

   num1 ??= '0';
   num2 ??= '0';

   var input1 = int.parse(num1);
   var input2 = int.parse(num2);

   print("SUM = ${input1 + input2}");
}

运行此代码后,一切正常,但每当我在被告知输入两个数字时尝试给出空值时,代码就会崩溃。听说如果解析空值,代码会崩溃,所以我尝试将空值更改为'0'。

谁能告诉我这段代码有什么问题?

【问题讨论】:

  • 崩溃怎么办?你得到什么错误?

标签: flutter dart exception null-check


【解决方案1】:

如果我是正确的,您是在键盘中输入 'null' 以分配给 num1 变量,对吗?

如果是这种情况,您不会将null 传递给num1,而是传递'null' (String)

当您尝试int.parse('null') 时,它会给您一个错误,因为.parse 不知道如何将字符串'null' 转换为int。您可以改用int.tryParse(String)。它在无法解析字符串时返回null而不是抛出异常

试试这个:

void main(){

   print("Enter two numbers: ");
   var num1 = stdin.readLineSync();
   var num2 = stdin.readLineSync();

   num1 ??= '0';
   num2 ??= '0';

   var input1 = int.tryParse(num1) ?? 0;
   var input2 = int.tryParse(num2) ?? 0;

   print("SUM = ${input1 + input2}");
}

【讨论】:

  • 首先要说的是,当被要求“输入两个数字”来创建空字符时,我只是按了键盘上的“ENTER”键,这就是我的导师告诉我的。这对我不起作用。
  • 第二件事,我试过你的答案,但现在它变成了一个错误。它告诉“参数类型'String?'不能分配给参数类型“字符串”,因为“字符串?”可以为空,而 'String' 不是。”。
  • 现在试试这个,我已经编辑了答案
猜你喜欢
  • 2021-10-23
  • 2021-04-13
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 2011-03-16
  • 1970-01-01
相关资源
最近更新 更多