<div dir="ltr">-1 on inferred return type and omitting return with func<div><br></div><div><div><div>Both features are actually available in the language as-is, just not with the func keyword:</div><div><br></div><div>let someInferredFunction = { _ in 5}  // () -&gt; Int</div></div><div><br></div><div>When teaching Swift we actually teach func + return keywords together, they make it easy to see all possible return paths from a function.</div><div><br></div><div>And we recommend using func instead of a closure when there is a multiline body with control statements. Having implicit return in that case hurts readability.  For example, out of three possible return points within this function only one is not marked with return:</div><div><br></div><div>func f(input: Int) -&gt; Int {</div><div>    if input &gt; 10 { </div><div>        return 10 </div><div>    }</div><div>    if input &lt; 0 { </div><div>        return 0 </div><div>    }</div><div>    input</div><div>}</div><div><br></div><div><div><div class="gmail_extra"><br></div><div class="gmail_extra">+1 on omitting return from var {} declaration, those methods look like closures and will often be one-liners.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 20, 2015 at 5:29 AM, Craig Cruden via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><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"><div style="word-wrap:break-word">I looked at the discussion and it looked like they were discussion two things combined.<div>   - inferred return type (on function signature) </div><div>   - and omitting return on the return.</div><div><br></div><div>I agree with Chris on the fact that the function should have the type of return specified on the signature and not inferred since it is useful for API documentation to know that ahead of time on a strongly typed language.</div><div><br></div><div>What is not necessary is actually forcing people to type return “x” on the last line - since “return” is rather redundant and clutter for those people of a functional programming paradigm point of view.</div><div><br></div><div><br><div><blockquote type="cite"><div><div class="h5"><div>On 2015-12-20, at 4:15:15, Stephen Christopher 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">The discussion I was remembering, comment courtesy of Chris: <div><a href="https://devforums.apple.com/message/1014317#1014317" target="_blank">https://devforums.apple.com/message/1014317#1014317</a><br></div><div><br></div><div>(linked from <a href="https://devforums.apple.com/thread/255242" target="_blank">https://devforums.apple.com/thread/255242</a>)</div><div class="gmail_extra"><br></div></div>
</div></div><img src="https://u2002410.ct.sendgrid.net/wf/open?upn=CGU22LnxbYa2EM3wKvzuC6syQDwKa0tMs5IyT5gL1wJT-2BYD4vVxTNkjz3P-2BxMaTzGkQNfsZYcem-2FDROzdNqEF1b0fZQ3FxI-2FHZ812FCYxRRKvQTmUkEwUfHNDRSEVD6ddMzVM0rm-2B6SuukGhojDCOGi1k6IUbA1sCKZQc1oW1cGHIbzYuZAFeEAMdH2cdqfRhh0vJezQwp83W-2BXaRJf-2FUvAxjmQKHnwfX-2F49MLOng4U-3D" alt="" width="1" height="1" border="0" style="min-height: 1px !important; width: 1px !important; border-width: 0px !important; margin: 0px !important; padding: 0px !important;">
_______________________________________________<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>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=1p9Jer2O6jVE9KWvo-2B9iUaEyN8slp4IizyiLwsfp54MbWFefszu7Zz2orCFlOCV6tzT4x0VJt9uf5PHHlBokoQjJ5eXtzqVR5X0UoDf2tpT5NdTK1JiAI5QV1fY9X8Stq3RCFNNkPzBvubogqTfa-2BFy9wJB-2FyWTjgfH-2BAh3fAV9x54I7tjXBLQ6-2FWbF2vsTFznmPandfkPW0J3NiBz4Vy3D4ZNDXX8-2BycWbFJK6cokU-3D" alt="" width="1" height="1" border="0" style="min-height: 1px !important; width: 1px !important; border-width: 0px !important; margin: 0px !important; padding: 0px !important;">
</div>
<br>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div></div></div></div></div>