Raw strings starting/ending with backtick
Brian Goetz
brian.goetz at oracle.com
Sat Nov 24 16:22:01 UTC 2018
No. The compiler can do constant folding of such expressions.
Sent from my iPad
> On Nov 24, 2018, at 10:34 AM, Weijun Wang <weijun.wang at oracle.com> wrote:
>
>
>
>> On Nov 24, 2018, at 9:11 PM, Jim Laskey <james.laskey at oracle.com> wrote:
>>
>> There are several approaches but the simplest is using strip(). Example,
>>
>> `` `abc` ``.strip()
>>
>> Concat is another approach,
>>
>> “`” + `abc` + “`”
>
> But this means the literal inside the constant pool of the class will be "`abc` ", right? This is a little uncomfortable to me.
>
>>
>> Not perfect but other delimiter choices also have these edge cases.
>
> How about the Rust r###"..."### style?
>
> Thanks
> Max
>
>>
>> Cheers,
>>
>> — Jim
>>
>>
>> Sent from my iPad
>>
>>> On Nov 24, 2018, at 8:55 AM, Attila Kelemen <attila.kelemen85 at gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> Reading the JEP on raw string literals, I saw no mentions of the case when a string starts (or ends) with backtick. I guessed, that maybe the compiler will close the literal when it finds more than half the number of backticks than the beginning (nothing implied this behaviour just tried it and I know that it might be very suprising in other cases). I have tried with the latest early access compiler and (not too suprisingly) it didn't behave this way and simply failed when starting the literal with a backtick.
>>>
>>> My question is, of course: What is the strategy for this case? Or is it explicitly ignored as too much of an edge case (and left to the developer to deal with)?
>>>
>>> Thanks,
>>> Attila Kelemen
>>
>
More information about the compiler-dev
mailing list