class Foo {
int count; // Error
void bar() => count = 0;
}
Why I'm seeing an error when I'am already initializing it in the bar method? I could understand this error if count was marked final.
class Foo {
int count; // Error
void bar() => count = 0;
}
Why I'm seeing an error when I'am already initializing it in the bar method? I could understand this error if count was marked final.
(Your code was fine before Dart 2.12, null safety)
With null safety, Dart doesn't know if you actually assigned a value to count. Dart can see initialization in three ways:
int count = 0;
Foo(this.count);
Foo() : count = 0;
So, according to Dart, count was never initialized in your code and hence the error. The solution is to either initialize it in 3 ways shown above or just use the late keyword which will tell Dart that you are going to initialize the variable later.
late keyword:class Foo {
late int count; // No error
void bar() => count = 0;
}
class Foo {
int? count; // No error
void bar() => count = 0;
}
These are new rules about Dart about null safety
class Note {
late int _id;
late String _title;
late String? _description;
late String _date;
late int _priority;
}
make sure before your variable put late
Use the late keyword to initialize a variable when it is first read, rather than when it's created.
class Questionz {
late String questionText;
late bool questionAnswer;
Questionz({required String t, required bool a}) {
questionText = t;
questionAnswer = a;
}
}
IN my case i found giving ? and ! to the variable helpful:
double? _bmi; // adding ? to the double
String calculateBMI(){
_bmi=weight/pow(height/100, 2);
return _bmi!.toStringAsFixed(1);// adding ! to the private variable
}
String getResult(){
if(_bmi!>=25){ //adding ! to the private variable
return 'Overweight';
} else if (_bmi!>=18.5)
{
return 'normal';
}else{return 'underweight';}
in pubspec.yaml if you are using :
environment: sdk: ">=2.12.0 <3.0.0"
change to environment: sdk: ">=2.7.0 <3.0.0"
2.12.0 null safety feature is on & 2.7.0 null safety feature is off
tip : instead of copy change manually
for more info https://dart.dev/null-safety
for null safety use ? after variable like var a? and while using the variable use ! after variable , like : if(a!){}