title: What's the differences between "!" and "?" operators in dart null safety?
body: <p>Could anyone explain a little bit about the differences between
  using this:</p>
  <pre class="lang-dart prettyprint-override"><code>final block = blocks?.first;
  </code></pre>
  <p>and this:</p>
  <pre class="lang-dart prettyprint-override"><code>final block = blocks!.first;
  </code></pre>
  <p>where <code>blocks</code> is:</p>
  <pre><code>List&lt;Block&gt;? blocks
  </code></pre>