on Fri May 20 2016, Kevin Ballard <[email protected]> wrote:
> On Fri, May 20, 2016, at 05:14 PM, Dave Abrahams via swift-evolution wrote: >> >> on Fri May 20 2016, Kevin Ballard <[email protected]> wrote: >> >> > On Tue, May 17, 2016, at 08:32 PM, Chris Lattner via swift-evolution wrote: >> >> * What is your evaluation of the proposal? > >> > >> > I'm a little nervous about this change, because converting things to >> > strings is a fairly basic operation and it should be immediately >> > obvious how to do that. That said, the described issues are pretty >> > bad, and I know I've had to carefully triple-check sometimes to make >> > sure I was calling the right initializer. So I'm +1 on the idea. >> > >> > That said, I don't like the name String(printing:). As others have >> > pointed out, it sounds like this is related to print(), but this >> > initializer does not actually print anything, it just converts any >> > value into a string. I also don't like String(describing:) because >> > it's too long. This initializer should be easier to call than >> > String(reflecting:). Also, in my experience this initializer is >> > particularly useful with code of the form `someOpt.map(String.init)`, >> > and saying `someOpt.map(String.init(describing:))` is annoyingly long. >> > >> > Given this, I'd like to suggest the simpler `String(from:)`. It's >> > short and generic, and it makes sense as it creates a String from any >> > value. >> >> Not too bad. I could live with it. > > 😀 > >> > I'm also not a fan of Dave's suggestion of removing this initializer >> > entirely in favor of "\(foo)". This feels weird, and it also can't be >> > turned into a first-class function value. >> >> { "\($0)" } >> >> ? > > Good point. I think what I intended to express was you cannot refer to > this operation by name anymore. Maybe not a big deal, but it feels > weird. Makes sense. -- -Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
