Actually, it would be like this:
let veryLongString2 = "word word word" +
"word word word" +
"word word word"
> On Apr 3, 2017, at 10:29 AM, Ricardo Parada via swift-evolution
> <[email protected]> wrote:
>
> I think we should focus on taking care of 99% of the cases. If you have a
> very long string then you use the good old fashioned string literal
> concatenation:
>
> Let veryLongString2 = "word word word"
> + "word word word"
> + "word word word"
>
>
> By the way, the multi-line string should allow \n\n, or as many as you may
> want to throw in there. I don't see a problem with that.
>
>
>
>> On Apr 3, 2017, at 10:23 AM, Adrian Zubarev <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> At quick glance I disagree with (4). If your current string would contain
>> something like "\n\n" would you really use another empty line with a single
>> unescaped quote? If you’re not, you’ll end up adding a single \n, but that
>> on the other than would be strange if you add it at the end of the line.
>>
>> Multi-lined strings should not be abused for adding new lines to the string
>> itself, however I’m fine with allowing single quotes without escaping them.
>>
>> If we’d really go that path then I still could not format some really long
>> hardcoded text for code readability in a multi lined string, just because of
>> the fact that it will alter my original string by automatically adding new
>> line characters.
>>
>> let veryLongString1 = "word word word … word word word"
>>
>> let veryLongString2 = """word word word
>> word word word
>> …
>> word word word
>> word word word"""
>>
>> // Logically that string should be the same, however during the
>> // automatic new lines we'll get this
>>
>> veryLongString1 == veryLongString2 // => false
>> What has the multi lined string solved here? Nothing.
>>
>>
>>
>>
>> --
>> Adrian Zubarev
>> Sent with Airmail
>>
>> Am 3. April 2017 um 16:00:53, Ricardo Parada ([email protected]
>> <mailto:[email protected]>) schrieb:
>>
>>> What is the purpose of that backslash? It does not feel like an
>>> improvement.
>>>
>>> I think we should focus on:
>>>
>>> 1. Looking pretty
>>> 2. Allow unescaped quote, double quote as well single/double apostrophe
>>> characters
>>> 3. Allow interpolation
>>> 4. No need to add the \n character for each line
>>> 5. It should have a continuation character
>>> 6. Keep it simple
>>>
>>> Something like this:
>>>
>>> let xml = M"<?xml version="1.0"?>
>>> "<catalog>
>>> " <book id="bk101" empty="">
>>> " <author>\(author)</author>
>>> " </book>
>>> "</catalog>
>>> Or maybe this:
>>>
>>> let xml = """<?xml version="1.0"?>
>>> "<catalog>
>>> " <book id="bk101" empty="">
>>> " <author>\(author)</author>
>>> " </book>
>>> "</catalog>
>>> In the first example the multiline literal is started with M". In the
>>> second example it starts with three double quotes """. I really have no
>>> preference. In both examples there is no need to have a \ or \n at the end
>>> of the line.
>>>
>>> You can have quote characters in the string, including double quotes as
>>> shown by empty="". You can have interpolation, i.e. \(author).
>>>
>>> You have a continuation character which helps as a visual guide and as a
>>> marker for the beginning of each line.
>>>
>>> The multi string literal ends when there are no more continuation
>>> characters.
>>>
>>>
>>>
>>>> On Apr 3, 2017, at 3:01 AM, Adrian Zubarev via swift-evolution
>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>>
>>>> Hello Swift community,
>>>>
>>>> on Github there is a PR for this proposal, but I couldn’t find any up to
>>>> date thread, so I’m going to start by replying to the last message I
>>>> found, without the last content.
>>>>
>>>> I really like where this proposal is going, and my personal preference are
>>>> *continuation quotes*. However the proposed solution is still not perfect
>>>> enough for me, because it still lacks of precise control about the
>>>> trailing space characters in each line of a multi-line string.
>>>>
>>>> Proposed version looks like this:
>>>>
>>>> let xml = "<?xml version=\"1.0\"?>
>>>> "<catalog>
>>>> " <book id=\"bk101\" empty=\"\">
>>>> " <author>\(author)</author>
>>>> " <title>XML Developer's Guide</title>
>>>> " <genre>Computer</genre>
>>>> " <price>44.95</price>
>>>> " <publish_date>2000-10-01</publish_date>
>>>> " <description>An in-depth look at creating applications with
>>>> XML.</description>
>>>> " </book>
>>>> "</catalog>
>>>> ""
>>>> I would like to pitch an enhancement to fix the last tiny part by adding
>>>> the escaping character ‘' to the end of each line from 1 to (n - 1) of the
>>>> n-lined string. This is similar to what Javascript allows us to do, except
>>>> that we also have precise control about the leading space character
>>>> through ’"’.
>>>>
>>>> The proposed version will become this:
>>>>
>>>> let xml = "<?xml version=\"1.0\"?>\
>>>> "<catalog>\ // If you need you can comment here
>>>> " <book id=\"bk101\" empty=\"\">\
>>>> " <author>\(author)</author>\
>>>> " <title>XML Developer's Guide</title>\
>>>> " <genre>Computer</genre>\
>>>> " <price>44.95</price>\
>>>> " <publish_date>2000-10-01</publish_date>\
>>>> " <description>An in-depth look at creating applications with
>>>> XML.</description>\
>>>> " </book>\
>>>> "</catalog>\
>>>> ""
>>>> Here is another example:
>>>>
>>>> let multilineString: String = "123__456__\ // indicates there is another
>>>> part of the string on the next line
>>>> "__789_____\ // aways starts with `"` and
>>>> ends with either `\` or `"`
>>>> "_____0_" // precise control about pre- and
>>>> post-space-characters
>>>>
>>>> let otherString = "\(someInstance)\ /* only comments are allowed in
>>>> between */ "text \(someOtherInstance) text"
>>>> This is simply continuation quotes combined with backslash concatenation.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Adrian Zubarev
>>>> Sent with Airmail
>>>>
>>>>
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> [email protected] <mailto:[email protected]>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>>
>>
>>
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution