<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 2, 2016, at 12:50 PM, Dave Abrahams via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">In my opinion, we can and must do much better for Swift. &nbsp;If there's</span><br style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">something about “%” formatting that you particularly value, I'd like to</span><br style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">know about it, so I can make sure it's accomodated.</span><br style="font-family: Alegreya-Regular; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote></div><br class=""><div class="">It offers more control over formatting, like min/max widths, number base, decimal places, etc. Yes, you can do this in the code inside the interpolated string, but IMHO it’s awkward because it requires knowing a bunch of extra methods for string conversion, truncation, etc. It’s a lot easier for me to remember and type “%x” than it is to remember and type the method that converts an int to a hex string.</div><div class=""><br class=""></div><div class="">Also (and more importantly for localization) the formatting details are part of the localizable format string, not hardwired. One example of this is formatting currency, where a US localization would use “$%.2f” but other currencies might call for more or fewer decimal places. There are other examples where one might swap format strings for other purposes like different-width layouts for monospaced/terminal output.</div><div class=""><br class=""></div><div class="">There’s also a nonstandard extension used by Cocoa/CF’s formatters, that allows the parameters to be reordered. (I haven’t used it so I don’t know the syntax offhand.) This is of course important for localization, to follow a language’s grammar.</div><div class=""><br class=""></div><div class="">I think these features could be added to interpolation. Just as a quick idea, maybe a syntax that allows formatting metacharacters to be added at the start of the interpolation, like “Please pay $\((.2) total)” where the “(.2) specifies two decimal places, or “The address is \((x) addr)”.</div><div class=""><br class=""></div><div class="">—Jens</div></body></html>