[swift-evolution] [Review] SE-0168: Multi-Line String Literals

Adrian Zubarev adrian.zubarev at devandartist.com
Thu Apr 13 08:17:49 CDT 2017


As already mentioned I revised my opinion about the last content line, because the model I summarized mimics perfectly how you’d write text paragraphs.

I’d say most of the time string concatenation is used to combine strings on the same line. A string literal however should only represent the content between the delimiters. Including an implicit new line for the last content line might seem consistent to other content lines from s0 to s(n - 1) (I refer to my gist here), but it should be consistent to the standard string literal instead.

print("""
    foo
    foo
    """)
That will only print

foo
foo
As expected (I don’t take the new line from print into account). That is the natural an consistent way.

If you’d need a new line at the end you’ll have natural ways of doing so, or you can fallback to the explicit \n character.

print("""
    foo
    foo\n
    """)
     
// Equivalent to the print above this comment, because the backslash
// in the last line only serves precision, but has no effect on the  
// implicit new line character, because the last line doesn't add any.
print("""
    foo
    foo\n\
    """)

// Natural text way
print("""
    foo
    foo
     
    """)


-- 
Adrian Zubarev
Sent with Airmail

Am 13. April 2017 um 14:35:59, Ricardo Parada (rparada at mac.com) schrieb:

Trailing newline 

We need consensus on whether the trailing newline on the last line should be included.  You are proposing it should not be included which will add an empty line to Brent's xml concatenation example. The example looks better when the trailing newline is included. 

In the more rare case where the newline is not desired on the last line then you can just include the backslash at the end. See Brent's revised proposal: https://github.com/johnno1962a/swift-evolution/blob/master/proposals/0168-multi-line-string-literals.md
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170413/7f6681a8/attachment.html>


More information about the swift-evolution mailing list