groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul King <pa...@asert.com.au>
Subject Re: Long String concatenation failed
Date Tue, 25 Sep 2018 19:27:02 GMT
Groovy uses the end of line as the statement terminator unless it can
safely tell that the next line should follow on. We didn't allow plus or
minus on the next line
when working out the list of things to safely accept since it would have
been a breaking change for anyone using the unaryPlus or unaryMinus
operators..
I suspect very few people use that operator as an overloadable operator but
some folks might use it in their DSLs for instance.

We could create a GEP for Groovy 3.0 to change the behavior. We'd need to
outline how to allow the unary operator style.

Why not use the line continuation slash at the end of the line:

String text= "0"+"1" +
"2" \
+"3"

Cheers, Paul.


On Tue, Sep 25, 2018 at 11:47 PM Jmeter Tea <jmetertea@gmail.com> wrote:

> *mg: *Yes, I saw that it's working, but still,
>
> groovy should add sugar to java instead of removing support of working
> code in java as:
> String text= "0"+"1" +
> "2"
> +"3";
>
> Which I'm getting error:
> javax.script.ScriptException: groovy.lang.MissingMethodException: No
> signature of method: java.lang.String.positive() is applicable for argument
> types: () values: []
> Possible solutions: notify(), tokenize(), size(), size()
>
> Can I open a bug in groovy for this?
>
> On Tue, Sep 25, 2018 at 4:04 PM, mg <mgbiz@arscreat.com> wrote:
>
>> You can have new lines, just move the "<<" oi the end of the previous
>> line, so Groovy knows there is more coming (Groovy does not need
>> end-of-line semicolons btw):
>>
>> String text ="<id>" <<vars["id1"] << "<id><id2>" <<
>>
>> vars["id2"] << "<id2>"
>>
>>
>> -------- Ursprüngliche Nachricht --------
>> Von: Jmeter Tea <jmetertea@gmail.com>
>> Datum: 25.09.18 14:54 (GMT+01:00)
>> An: users@groovy.apache.org
>> Betreff: Re: Long String concatenation failed
>>
>> Thank for your answers, I still have some comments:
>> *mg: *I don't want to have a huge line with 20 parameters that can't be
>> seen on screen so I need new lines between parameters
>> Nelson, Erick: I don't need XML as the article suggest " builder classes
>> to create XML "
>>
>> On Tue, Sep 25, 2018 at 3:39 PM, Nelson, Erick <Erick.Nelson@hdsupply.com
>> > wrote:
>>
>>> No, I mean markup builder.
>>>
>>> Mr Haki says it best….
>>>
>>> http://mrhaki.blogspot.com/2009/10/groovy-goodness-creating-xml-with.html
>>>
>>>
>>>
>>>
>>>
>>> Erick Nelson
>>>
>>> Senior Developer – IT
>>>
>>> HD Supply Facilities Maintenance
>>>
>>> (858) 740-6523
>>>
>>>
>>>
>>>
>>>
>>> *From: *mg <mgbiz@arscreat.com>
>>> *Reply-To: *"users@groovy.apache.org" <users@groovy.apache.org>
>>> *Date: *Tuesday, September 25, 2018 at 5:19 AM
>>> *To: *"users@groovy.apache.org" <users@groovy.apache.org>
>>> *Subject: *Re: Long String concatenation failed
>>>
>>>
>>>
>>> If it is just the CTE that is the problem, you just have ro move the
>>> "<<" to the end of the previous line...
>>>
>>>
>>>
>>> -------- Ursprüngliche Nachricht --------
>>>
>>> Von: Jmeter Tea <jmetertea@gmail.com>
>>>
>>> Datum: 25.09.18 09:56 (GMT+01:00)
>>>
>>> An: users@groovy.apache.org
>>>
>>> Betreff: Long String concatenation failed
>>>
>>>
>>>
>>> Hello,
>>>
>>> I have to  concatenate a lot of variables in a script and I want to make it readable,
but I failed to separate lines as in java, The following code doesn't compile due to:
>>>
>>> Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
failed:
>>>
>>> Script1.groovy: 2: unexpected token: << @ line 2, column 1.
>>>
>>>    << vars["id2"] << "<id2>"
>>>
>>>
>>>
>>> Code:
>>>
>>> String text ="<id>" <<vars["id1"] << "<id><id2>"
>>>
>>> << vars["id2"] << "<id2>";
>>>
>>>
>>>
>>> Is there a workaround or a better way concatenation a string in groovy?
>>>
>>>
>>>
>>> Related question:
>>>
>>>
>>> https://stackoverflow.com/questions/47786399/jmeter-groovy-script-concatenation-of-variables
>>>
>>>
>>>
>>> Thank you
>>>
>>
>>
>

Mime
View raw message