[swift-evolution] multi-line string literals.

Dave Abrahams dabrahams at apple.com
Tue Apr 26 16:54:00 CDT 2016


on Fri Apr 22 2016, John Holdsworth <swift-evolution at swift.org> wrote:

> As a long time user of Perl, for me the simplicity and lack of flexibility is the attraction
> when it comes to “”” syntax ;) That’s a lot of documentation for just specifying a string.
>
> Perl makes life difficult for itself due to it’s rather simplistic $var interpolation syntax
> which means you frequently want an un-interpolated string literal. The situation is
> far better in Swift with the more distinct \().
>
> Can you think of anything that couldn’t be readily expressed using
> Python style “””?

I've long held that the python string quoting styles “just work” and we should
appropriate them rather than reinventing the wheel.  In particular, the
ability to write raw strings such as

     r'something containing backslashes (\) and quotes (")'

and 
     r"""something containing backslashes (\), quotes (") and
     newlines!"""

economically is extremely useful.  

When one needs to embed a fairly large block of text in source, the
ability to use the triple-quoted forms *without* injecting noise on each
line is fantastic.

>
> John
>> On 22 Apr 2016, at 19:12, Patrick Gili <gili.patrick.r at gili-labs.com> wrote:
>> 
>> This doesn't provide very much flexibility. I'd like to see something more like Perl6's quoting constructs: https://doc.perl6.org/language/quoting.
>> 
>> -Patrick
>> 
>>> On Apr 22, 2016, at 12:59 PM, John Holdsworth via swift-evolution <swift-evolution at swift.org> wrote:
>>> 
>>> I’ve raised a speculative PR against the Swift Lexer to support multi-line string literals as was
>>> suggested in the very first week Swift was open sourced and before that in various radars.
>>> 
>>> https://github.com/apple/swift/pull/2275
>>> 
>>> The approach taken is as simple as possible defining multi-line strings as being
>>> delimited by “”” instead of “ and thereafter able to contain new line characters.
>>> 
>>> There has been some discussion of this before on swift-evolution:
>>> 
>>> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001565.html
>>> 
>>> I’m trying to avoid more advanced features such as the handling of indenting which
>>> for me complicates something that if kept simple can be documented very easily.
>>> 
>>> This change will require a evolution proposal so I’d like to take the pulse before I write it up.
>>> 
>>> Thoughts?
>>> 
>>> John
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-- 
Dave



More information about the swift-evolution mailing list