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 
> <swift-evolution@swift.org> 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 <adrian.zuba...@devandartist.com 
>> <mailto:adrian.zuba...@devandartist.com>> 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 (rpar...@mac.com 
>> <mailto:rpar...@mac.com>) 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 
>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> 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
>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>> 
>> 
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to