如何在Dart中实现Null检查器



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

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}");
}

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

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

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

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

当你尝试int.parse('null')时,它会给你一个错误,因为.parse不知道如何将字符串'null'转换为int。您可以使用int.tryParse(String)代替。当它无法解析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}");
}

相关内容

  • 没有找到相关文章

最新更新