这是我第一次学习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}");
}