<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">.none or a more appropriate keyword like “none” (imo)<div class=""><br class=""></div><div class="">Brandon</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 8, 2016, at 4:47 PM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">It's been pointed out before that Optional being an enum type is treated like an implementation detail. Currently, it is possible to teach the concept of Optional without introducing enum types or generics. How would you do so after elimination of nil?<div class="gmail_extra"><br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Jun 8, 2016 at 3:41 PM, Антон Жилин <span dir="ltr" class="">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">(No joking)<div class=""><div class="">Points:<div class=""><br class=""></div><div class="">1. When nil was added to the language, we could not infer enumeration type:</div><div class="">if x != Optional.none { ... }</div><div class=""><br class=""></div><div class="">Now it looks like this:</div><div class="">if x != .none { ... }</div><div class=""><br class=""></div><div class="">If at this point we had a proposal to add nil as a replacement for .none, would we accept it?</div><div class=""><br class=""></div><div class="">2. nil is very generic, it only approximately allows to express the intentions.</div><div class="">In case of Optional, .none is clearer. In case of JSON processing, .null is clearer. In case of a semantically nullable struct, NilLiteralConvertible usually goes to default constructor.</div><div class=""><br class=""></div><div class="">3. Too many "empty" things: .none, nil; NSNull, Void, NoReturn types.</div><div class=""><br class=""></div><div class="">4. There should be a single consistent terminology: no value in Swift equals none.</div><div class=""><br class=""></div><div class="">- Anton</div></div></div></div>
<br class="">_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
<br class=""></blockquote></div><br class=""></div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>