3 / 100DaysOfFlutter: Dart Sound Null Safety, Null Assign, Null Check, Everything null.
Learning null Safety in Dart:
understanding why we need null Safety; Null means nothing is there. so handle the programme at any point in time if there is a value which is null what should be performed?
Sound NullSafety:
By sound you might is understand that here you may know when the value will be null; so for that flow, we use SOUND Null Safety
int i = 0;
i= null; ❌
// here i is 0; but what if somepoint it becomes null;
// then it will throw an error
// so we need to add a check for null
<!-- down arrow unicode -->
int❓ j = 1;
//^ this is a nullable variable; so in future it can be null; and wount' throw error.
// make any value nullable by adding ❓after the variable type.
j = null; ✅
List<String> names = ['Ram', 'Shyam', 'Hari'];
names[0] = null; ❌
List<String?> names2 = ['Ram', 'Shyam', null];
names2[0] = null; ✅
List<String>? names3 = ['Ram', 'Shyam', 'Hari'];
names3 = null ✅
// for making a list nullable we need to add ? after the list type here it is String.
List<String?>? names4 = [null, null, "Ram"]; ✅
// Here List as well as list Type is also nullable.
Null Assign:
Null Assign means if the value is null Assign this value
int? age = 12;
age = null;
int RealAge = age ?? 18;
// adding this ❓❓ after the variables (age) makes us sure that if any case the value of age is null the RealAge will be 18;
Null Check
Null check is a process of checking if the value is null or not, and perform tasks accordingly.
List<String>? names5 = null;
print(names5?.length);
// it is shortcut for
if(names5 != null) {
print(names5.length);
} else {
print("null");
}
print(Person?.skills?.length);✅
.❓.❓.❓
// it will only print the length of skills if the person is not null and if the skills are not null.
I will explain Objects; Classes in the next blog.
Share with me if anything is missing or you don't understand; don't shy 🥺
ping me on Twitter 🕊️ @Abhayprajapati_
Check the code for today here.
Repo
🤝🏾Connect me on:
Twitter: 🕊️@Abhayprajapati_
Github: 🐧@theabhayprajapati