<div dir="ltr">Part of me regrets using String(format:) as my go to example of a varargs invocation now. :)<div><br></div><div>But while the train is off the rails, why introduce a special syntax at all? Since interpolation can include any expression, users can just write small formatting functions and call them there.</div><div><br></div><div>Pros: We can standardize a few in stdlib, and it would be more extensible than learning yet another string formatting language.</div><div>Cons: Likely to be more verbose than printf-like descriptors.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Apr 18, 2016 at 12:27 PM Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is why god gave us bike sheds.<br>
<br>
Maybe &quot;My earned interest rate this year is \({02.2}theRate)%!&quot;<br>
<br>
-- E<br>
<br>
<br>
&gt; On Apr 18, 2016, at 1:23 PM, Ricardo Parada &lt;<a href="mailto:rparada@mac.com" target="_blank">rparada@mac.com</a>&gt; wrote:<br>
&gt;<br>
&gt; What would that look like?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt; On Apr 18, 2016, at 3:06 PM, Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Apr 18, 2016, at 1:01 PM, Tony Allevato via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would also be supportive of removing varargs for now, in favor of a rethought design when generics are completed.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In their current form, varargs are fairly limited—because they&#39;re mapped onto an array, the argument types must be homogeneous, so either your function can only usefully take a single type of argument, or you potentially lose information because they have to be upcast to a common supertype or Any in order to build the array.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m not convinced that varargs produce code that is much cleaner than the array version. Is this:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; String(format: &quot;%@ is %d years old&quot;, name, age)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; that much cleaner than:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; String(format: &quot;%@ is %d years old&quot;, arguments: [name, age])<br>
&gt;&gt;<br>
&gt;&gt; I would like to see format strings go away and be replace with safer inline annotations.<br>
&gt;&gt;<br>
&gt;&gt; -- E, somewhat agnostic on variadics<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; swift-evolution mailing list<br>
&gt;&gt; <a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
&gt;&gt; <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>
_______________________________________________<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" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>