在此代码plz中发现一些错误。 我在运行此方法时遇到一些错误,但我不明白该错误要说什么。此错误导致我的应用崩溃:
import 'dart:math';
class Brain{
Brain({this.height,this.weight});
final int height;
final int weight;
double _bmi;
String calculatebmi(){
_bmi = weight / pow( height/100, 2);
return _bmi.toStringAsFixed(1);
}
String getresult(){
if (_bmi >= 25){
return 'OVERWEIGHT';
}
else if (_bmi > 18.5 ){
return 'NORAML';
}
else{
return 'UNDERWEIGHT';
}
}
error=>
I/flutter (29335): The following NoSuchMethodError was thrown building Builder(dirty):
I/flutter (29335): The method '>=' was called on null.
I/flutter (29335): Receiver: null
I/flutter (29335): Tried calling: >=(25)
I/flutter (29335):
I/flutter (29335): The relevant error-causing widget was:
答案 0 :(得分:0)
创建类时,永远不要将_bmi设置为值,因此除非您在调用calculatebmi()
之前调用getResult()
函数,否则将抛出该错误,因为您无法进行类似>=
使用飞镖中的空值。
尝试将_bmi的初始化更改为double _bmi = 0;
,或更改构造函数以在创建时使用计算weight / pow( height/100, 2)
进行设置。