方法“ +”在null上被调用。接收方:空尝试呼叫:+(123)

时间:2020-09-28 18:22:16

标签: flutter dart

我收到此错误,但不知道为什么。我基本上只是检查运算符并据此进行计算。

谢谢您的帮助。

功能:


  void calculate() {
    setState(() {
      int num1int = int.tryParse(_num1);
      int num2int = int.tryParse(_num2);
      int result = 0;
      if (_operator == "+") {
        result = num1int + num2int;
      }
      else if (_operator == "-") {
        result = num1int - num2int;
      }
      else if (_operator == "*") {
        result = num1int * num2int;
      }
      else if (_operator == "/") {
        result = num1int ~/ num2int;
      }
    });
  }

2 个答案:

答案 0 :(得分:1)

如果“ int.tryParse”无法将其转换为整数,它将返回“ null”。因此您的代码可以:null + null。您可以在计算前为num1int和num2int添加一个检查,如果它为空。

答案 1 :(得分:1)

请将您的代码更改为

  if (_operator == "+") {
    result = num1int??0 + num2int??0;
  }
  else if (_operator == "-") {
    result = num1int??0 - num2int??0;
  }
  else if (_operator == "*") {
    result = num1int??1 * num2int??1;
  }
  else if (_operator == "/") {
    result = num1int??1 ~/ num2int??1;
  }