[swift-evolution] InternalString class for easy String manipulation

Jacob Bandes-Storch jtbandes at gmail.com
Tue Aug 16 23:21:19 CDT 2016

Here's a little prior discussion about ASCIIString:


On Sun, Aug 14, 2016 at 3:41 PM, Michael Savich via swift-evolution <
swift-evolution at swift.org> wrote:

> Back in Swift 1.0, subscripting a String was easy, you could just use
> subscripting in a very Python like way. But now, things are a bit more
> complicated. I recognize why we need syntax like
> str.startIndex.advancedBy(x) but it has its downsides. Namely, it makes
> things hard on beginners. If one of Swift's goals is to make it a great
> first language, this syntax fights that. Imagine having to explain Unicode
> and character size to an 8 year old. This is doubly problematic because
> String manipulation is one of the first things new coders might want to do.
> What about having an InternalString subclass that only supports one
> encoding, allowing it to be subscripted with Ints? The idea is that an
> InternalString is for Strings that are more or less hard coded into the
> app. Dictionary keys, enum raw values, that kind of stuff. This also has
> the added benefit of forcing the programmer to think about what the String
> is being used for. Is it user facing? Or is it just for internal use? And
> of course, it makes code dealing with String manipulation much more concise
> and readable.
> It follows that something like this would need to be entered as a literal
> to make it as easy as using String. One way would be to make all String
> literals InternalStrings, but that sounds far too drastic. Maybe appending
> an exclamation point like "this"! Or even just wrapping the whole thing in
> exclamation marks like !"this"! Of course, we could go old school and write
> it like @"this" …That last one is a joke.
> I'll be the first to admit I'm way in over my head here, so I'm very open
> to suggestions and criticism. Thanks!
> Sent from my iPad
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160816/9dcb9859/attachment.html>

More information about the swift-evolution mailing list