<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">You are right. I didn&#39;t know it can do that way.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">There is a note in <a href="https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html">Swift document</a>.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="georgia, serif">NOTE</font><font face="georgia, serif"><br></font><font face="georgia, serif">Place parameters with default values at the end of a function’s parameter list. This ensures that all calls to the function use the same order for their nondefault arguments, and makes it clear that the same function is being called in each case.</font></blockquote><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">It makes me think what I did. </div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">zhaoxin</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 21, 2016 at 5:51 AM, Jordan Rose <span dir="ltr">&lt;<a href="mailto:jordan_rose@apple.com" target="_blank">jordan_rose@apple.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"><span class=""><br><div><blockquote type="cite"><div>On Jan 17, 2016, at 19:18 , 肇鑫 via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br><div><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></div></blockquote><br></div></span><div>This is not true.</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>func test(a a: Int = 0, b: Int = 1, c: Int = 2, d: Int = 3) {</div><div>  print(&quot;\(a) \(b) \(c) \(d)&quot;)</div><div>}</div><div>test()</div><div>test(a: 10)</div><div>test(b: 10)</div><div>test(c: 10)</div><div>test(d: 10)</div><div>test(b: 20, a: 10)</div><div>test(a: 10, b: 20, c: 30)</div><div>test(a: 10, d: 20)</div></blockquote><div><br></div>All of these calls are legal.<span class="HOEnZb"><font color="#888888"><div><br></div><div>Jordan<br><br></div></font></span></div></blockquote></div><br></div>