<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="">I'm not particularly in favor of a String initializer for booleans. In fact, I'm not particularly in favor of a String initializer for any numeric type.<div class=""><br class=""></div><div class="">Swift's String design ensures that developers can't make assumptions about encodings and a more international alphabet, which is a net win for natural languages that have a more complex alphabet than English. It is 2016 and you wouldn't believe how often my name is returned to me as "Felix", "Flix", "F?lix", "Félix", or that I'm told that my name is "invalid". I suspect that some of you could be guilty of name-validating regular expressions that look like [a-zA-Z\-].</div><div class=""><br class=""></div><div class="">(I understand that English keyboards don't have acute accents and that people write it Felix. However, it is less understandable when a machine processes my name and I wrote it right in the first place.)</div><div class=""><br class=""></div><div class="">Providing numeric type initializers that accept a String and interpret it with the C locale is a step backwards in the direction of supporting non-English languages. Even if you put a big red flag around the method and say "this uses the C locale and is improper for international inputs", the fact is that the C locale is essentially the American locale, and it's been proven over and over that humans will use the wrong tool if it is simpler than the right tool.</div><div class=""><br class=""></div><div class="">There is value in reading interchange formats like JSON. However, these languages define their own grammar and syntax. I see little benefit in letting that grammar and syntax leak into the realm of parsing values in the general case.<div class=""><div class="">
<br class="Apple-interchange-newline"><span style="color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">Félix</span>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">Le 4 juin 2016 à 11:38:04, Mirek Elsner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class="">Since the XML and JSON related objects are part of Foundation, I think it would be great to have that functionality in Foundation as well. For “true”, “false”, “1” and “0” (in addition to 1 and 0).</div><div class=""><br class=""></div><div class="">Mirek</div>
<br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 4, 2016, at 06:10, Arsen Gasparyan 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="">Hello,<div class=""><br class=""></div><div class="">It would be great if we had `<span style="color:rgb(51,51,51);font-size:12px;white-space:pre-wrap" class="">init?(_ text: </span><span class="inbox-code-object" style="font-size:12px;white-space:pre-wrap;color:rgb(145,0,145)">String</span><span style="color:rgb(51,51,51);font-size:12px;white-space:pre-wrap" class="">)</span>` for Bool class. Because sometime when you're processing&nbsp;JSON/XML it can help you a lot.</div><div class=""><br class=""></div><div class="">Examples:</div><div class=""><br class=""></div><div class=""><pre class="inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px">Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"<span class="inbox-code-keyword">true</span>"</span>) -&gt; <span class="inbox-code-keyword" style="color:rgb(0,0,145)">true</span>
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"<span class="inbox-code-keyword">false</span>"</span>) -&gt; <span class="inbox-code-keyword" style="color:rgb(0,0,145)">false</span>
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"TrUE"</span>) -&gt; <span class="inbox-code-keyword" style="color:rgb(0,0,145)">true</span>
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">" <span class="inbox-code-keyword">true</span> "</span>) -&gt; nil
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"1"</span>) -&gt; nil
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"Y"</span>) -&gt; nil
Bool(<span class="inbox-code-quote" style="color:rgb(0,145,0)">"whatever"</span>) -&gt; nil </pre><pre class="inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><br class=""></pre><pre class="inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><br class=""></pre></div>via <a href="https://bugs.swift.org/browse/SR-1282" class="">https://bugs.swift.org/browse/SR-1282</a><div class=""><br class=""></div><div class="">Thanks.</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=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></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></div></body></html>