xxxxxxxxxx
# Differences between "!" and "?" operators
students?.first >> the value of blocks can be null
students!.first >> you inform the compiler that you are certain that blocks are not null.
final student = students!.first; >> means you are completely assured that List<Student>? students is initialized before block assignment.
final student = students?.first; >> block will be nullable, but in final student = students!.first;, block is not nullable.
xxxxxxxxxx
// Symbols are something that stands for or indicates something
// Operators are like Arithmetic Operators(+,-,*,/), Logical Operators(&&,||,!)...etc.