<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">Hi David,</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">You understanding is correct. </div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">There is only one thing I have to mention. Unless the other c style languages which you can call default values in the middle, Swift only allows you to call default values in the last. That makes you example:</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default"><font face="georgia, serif">func print(message: String = default, path: String = default, line: Int = default)</font><br></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">can only wrapped to 4 functions instead of 8.</font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><span style="font-family:georgia,serif">func print(message: String, path: String, line: Int)</span><font face="georgia, serif"><br></font></div><div class="gmail_default"><span style="font-family:georgia,serif">func print()</span><span style="font-family:georgia,serif"><br></span></div><div class="gmail_default"><span style="font-family:georgia,serif">func print(message: String)</span><span style="font-family:georgia,serif"><br></span></div><div class="gmail_default"><span style="font-family:georgia,serif">func print(message: String, path: String)</span><span style="font-family:georgia,serif"><br></span></div><div class="gmail_default"><span style="font-family:georgia,serif"><br></span></div><div class="gmail_default"><font face="georgia, serif">You can&#39;t call func print(path: String) by calling </font><span style="font-family:georgia,serif">func print(message: String = default, path: String = default, line: Int = default)</span><span style="font-family:georgia,serif">. print(_, path: &quot;path&quot;t, line: _) is not a valid calling in Swift.</span></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">zhaoxin </font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 18, 2016 at 2:19 AM, David Hart <span dir="ltr">&lt;<a href="mailto:david@hartbit.com" target="_blank">david@hartbit.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Dave,<div><br></div><div>I agree with 肇鑫. Your issue and his seem like two separate issues, and I’d also like to see his issue implemented. For example, imagine I wanted to define this protocol:</div><div><br></div><div>protocol Logger {<br>    func print()<br>    func print(message: String)</div><div>    func print(path: String)</div><div>    func print(line: Int)</div><div>    func print(message: String, path: String)</div><div>    func print(message: String, line: Int)</div><div>    func print(path: String, line: Int)</div><div>    func print(message: String, path: String, line: Int)</div><div>}</div><div><br></div><div>It would be much simpler if I could more simply write:</div><div><br></div><div><div>protocol Logger {<br></div><div>    func print(message: String = default, path: String = default, line: Int = default)</div><div>}</div></div><div><br></div><div>Which is a separate issue then what you propose which would allow the same as the following for <b>init</b> as well:</div><div><br></div><div><div>protocol Logger {<br></div><div>    func print(message: String)</div><div>}</div></div><div><br></div><div>class NSLogger {</div><div>    func print(message: String, path: String, line: Int) {</div><div>        // ...</div><div>    }</div><div>}</div><div><br></div><div>extension NSLogger: Logger {</div><div>    conformance {</div><div>        print(message)</div><div>    }</div><div>}</div><div><br></div><div><blockquote type="cite"><div><div class="h5"><div>On 17 Jan 2016, at 18:09, 肇鑫 via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br></div></div><div><div><div class="h5"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">It is not to <i>conform to the same function name but with  different signatures</i>. It is the protocol limits in current Swift. You can implement a protocol function with default values. But the protocol can&#39;t call the function with the default value. So you have to add another function that has no argument in the protocol and change the implementation.<br></div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">current code:</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default"><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;color:rgb(187,44,162)">protocol<span> A {</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>)</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;min-height:13px"><br></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="color:rgb(187,44,162)">struct</span> Foo:<span style="color:rgb(79,129,135)">A</span> {</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span> = <span style="color:rgb(209,47,27)">&quot;some thing&quot;</span>) {</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">        <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">    }</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;min-height:13px"><br></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;color:rgb(49,89,93)"><span style="color:rgb(79,129,135)">Foo</span><span>().</span>printSomething<span>() </span><span style="color:rgb(0,132,0)">// some thing</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;color:rgb(0,132,0)"><span>(</span><span style="color:rgb(79,129,135)">Foo</span><span>() </span><span style="color:rgb(187,44,162)">as</span><span> </span><span style="color:rgb(79,129,135)">A</span><span>).printSomething() </span>// Missing argument for parameter #1 in call</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;color:rgb(0,132,0)"><br></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">default value part is widely discussed in <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160111/006798.html" target="_blank">this thread</a>, including other approaches like protocol extension.</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">zhaoxin</font></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 18, 2016 at 12:52 AM, J. Cheyo Jimenez <span dir="ltr">&lt;<a href="mailto:cheyo@masters3d.com" target="_blank">cheyo@masters3d.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is very interesting. The first case seems like a bug because the compiler should not let you define that function(). <div><br></div><div>Do you have any actual examples when you would need to conform to the same function name but with different signatures? <div><div><br><div><br>On Sunday, January 17, 2016, 肇鑫 via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">This proposal is the summary of the previous protocol function default value proposal and some of my new thinkings all together.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">Currently the compiler doesn&#39;t stop you defining two functions like:</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default"><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span> = <span style="color:rgb(209,47,27)">&quot;some thing&quot;</span>) {</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">    <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;min-height:13px"><br></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="color:rgb(187,44,162)">func</span> printSomething() {</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal;color:rgb(209,47,27)"><span>    </span><span style="color:rgb(61,29,129)">print</span><span>(</span>&quot;some thing!&quot;<span>)</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><br></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">However, when you call it, an error arises.</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,132,0)"><span>printSomething() </span>// Ambiguous use of &#39;printSomething&#39;</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><br></div><div style="margin:0px;line-height:normal"><span style="font-family:georgia,serif">You may say just remove the function that has no argument. But protocol needs it.</span><br></div><div style="margin:0px;line-height:normal"><span style="font-family:georgia,serif"><br></span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(187,44,162)">protocol<span> A {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething()</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px"><br></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Foo:<span style="color:rgb(79,129,135)">A</span> {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px">    <br></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething() {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(49,89,93)"><span>        </span><span style="color:rgb(187,44,162)">self</span><span>.</span>printSomething<span>(</span><span style="color:rgb(209,47,27)">&quot;some thing&quot;</span><span>)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;line-height:normal">












</p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small">If you do&#39;t define the no-argument function in protocol A. You can not use the function by (Foo() as A).printSomething().</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">As we all know, a function with default values, can rewrite to two or more equivalent functions. For example,</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Bar {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> add(int1:<span style="color:rgb(112,61,170)">Int</span> = <span style="color:rgb(39,42,216)">1</span>, int2:<span style="color:rgb(112,61,170)">Int</span> = <span style="color:rgb(39,42,216)">2</span>, int3:<span style="color:rgb(112,61,170)">Int</span> = <span style="color:rgb(39,42,216)">3</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(int1 + int2 + int3)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">



</p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small">is equivalent to </span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Bar {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> add(int1:<span style="color:rgb(112,61,170)">Int</span>, int2:<span style="color:rgb(112,61,170)">Int</span>, int3:<span style="color:rgb(112,61,170)">Int</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(int1 + int2 + int3)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px">    <br></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> add() {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(187,44,162)">self</span>.<span style="color:rgb(49,89,93)">add</span>(<span style="color:rgb(39,42,216)">1</span>, int2: <span style="color:rgb(39,42,216)">2</span>, int3: <span style="color:rgb(39,42,216)">3</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px">    <br></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> add(int1:<span style="color:rgb(112,61,170)">Int</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(187,44,162)">self</span>.<span style="color:rgb(49,89,93)">add</span>(int1, int2: <span style="color:rgb(39,42,216)">2</span>, int3: <span style="color:rgb(39,42,216)">3</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px">    <br></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> add(int1:<span style="color:rgb(112,61,170)">Int</span>, int2:<span style="color:rgb(112,61,170)">Int</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(187,44,162)">self</span>.<span style="color:rgb(49,89,93)">add</span>(int1, int2: int2, int3: <span style="color:rgb(39,42,216)">3</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal">















</p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">So my proposal is let compiler or pre-compiler to generate the code internally, without changing the original code,  base on the functions that have default values.</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">Then we need not to define multiple functions in a protocol when we need function with default values.</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">new code:</font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(187,44,162)">protocol<span> A {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px"><br></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Foo:<span style="color:rgb(79,129,135)">A</span> {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span> = <span style="color:rgb(209,47,27)">&quot;some thing&quot;</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;line-height:normal">







</p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;line-height:normal"><font face="georgia, serif"><br></font></div><div style="margin:0px;line-height:normal">If we don&#39;t want to change our previous code, we may also need to introduce another keyword defaultValue. This keyword is used only in a protocol to restrict if a function&#39;s argument can have a default value. If a function use it, but the implementation doesn&#39;t give a default value, or vice versa, an error arises.</div><div style="margin:0px;line-height:normal"><br></div><div style="margin:0px;line-height:normal">new code:</div><div style="margin:0px;line-height:normal"><br></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(187,44,162)">protocol<span> A {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span> = defaultValue)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px"><br></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Foo:<span style="color:rgb(79,129,135)">A</span> {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span> = <span style="color:rgb(209,47,27)">&quot;some thing&quot;</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;line-height:normal"></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small">This keyword is useful. With it, you can still use Swift in old way. Which means you need not to change code like below if you don&#39;t want to.</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small">old code:</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(187,44,162)">protocol<span> A {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething()</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px"><br></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo"><span style="color:rgb(187,44,162)">struct</span> Foo:<span style="color:rgb(79,129,135)">A</span> {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething(something:<span style="color:rgb(112,61,170)">String</span>) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">        <span style="color:rgb(61,29,129)">print</span>(something)</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px">    <br></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    <span style="color:rgb(187,44,162)">func</span> printSomething() {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(49,89,93)"><span>        </span><span style="color:rgb(187,44,162)">self</span><span>.</span>printSomething<span>(</span><span style="color:rgb(209,47,27)">&quot;some thing&quot;</span><span>)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">    }</div><p style="margin:0px;line-height:normal"></p><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo">}</div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="margin:0px;line-height:normal"><font face="georgia, serif">But if you want to write new code. You can just write it in the new way, enjoining the simpler and clearer.</font></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small">zhaoxin</span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div><div style="font-family:Menlo;margin:0px;font-size:11px;line-height:normal"><span style="font-family:georgia,serif;font-size:small"><br></span></div></div></div>
</blockquote></div></div></div></div>
</blockquote></div><br></div></div></div><span class="">
_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></span></div></blockquote></div><br></div></blockquote></div><br></div>