<div dir="ltr">Hello,<div><br></div><div>I&#39;m really used to negate logical expressions with this operator but it never feels confortable to me. If I need to negate some complex expression sometimes I prefer to write a temporal variable and then negate that with <b>!</b> because I fear than others, or myself, could overlook it and cause confusion.</div><div><br></div><div>Now that Swift use the same operator to force the unwrap of optional values it becomes even worse.</div><div><br></div><div>Consider this examples:</div><div><br></div><div>if someOptionalValue != nil {</div><div>    ...</div><div>    if !(otherBoolValue &amp;&amp; someOptionalValue! &gt; 0) {</div><div>        ...</div><div>    }</div><div>}</div><div><br></div><div>Or even worse, what happen when negating Optional&lt;Bool&gt; values?</div><div><br></div><div>//Best case</div><div>if let value = optionalBool where !value {</div><div>    ...</div><div>}</div><div><br></div><div>//Worse case</div><div>if !optionalBool! {</div><div>    ...</div><div>}</div><div><br></div><div>Now what happen with this examples if we instead use a <b>not</b> operator:</div><div><br></div><div><div>if someOptionalValue != nil {</div><div>    ...</div><div>    if not (otherBoolValue &amp;&amp; someOptionalValue! &gt; 0) {</div><div>        ...</div><div>    }</div><div>}</div><div><br></div><div>if let value = optionalBool where not value {</div><div>    ...</div><div>}</div><div><br></div><div>if not optionalBool! {</div><div>    ...</div><div>}</div></div><div><br></div><div>I&#39;m not sure if <b>not</b> is the right path here but I really want to improve the <b>!</b> to something more clear at a glance and that doesn&#39;t have different behaviour depending where it appears in an expression.</div><div><br></div><div>Thanks,</div></div>