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