in groovy , what to do if i want multiline string without interpolation and WITHOUT ESCAPING
something like:
var1="hello hello"
var2="""/
adakldjkadj\^mk
as@da\kl#DFD#$#
${var1}
d3&657\7fdsfsf
/"""
println var2;
should print exactly the same as it is, like:
adakldjkadj\^mk
as@da\kl#DFD#$# ${var1} d3&657\7fdsfsf
THAT IS, THE ${var1} has NOT been expanded, AND the escaping the \ was not needed and it is multiline string
THEN HOW TO ASSIGN THIS HE开发者_如何学PythonREDOC STRING IN GROOVY. This is possible in bash script, ruby,perl etc.in ruby it is expressed as (notice the quotes around the delimiter chars like: 'EOL')
a = <<'EOL'
adakldjkadj\^mk
as@da\kl#DFD#$#
yes ${var1}
d3&657\7fdsfsf
EOL
how to do it in groovy?
Use triple single quotes like '''
instead of double quotes to avoid variable interpolation in multi-line strings.
It is not possible, see here: https://issues.apache.org/jira/browse/GROOVY-411
You can get closer, but still not what you're looking for, using single-quotes. It won't expand the ${var1} anymore.
As far as the \, that's always a java/groovy delimiter for special characters, so you'll always have to escape it.
Edit: Looks like they're working on this for 1.8, or it's already in 1.8. I'm currently only running 1.7, so can't test or provide a code example.
- https://issues.apache.org/jira/browse/GROOVY-2701
- http://docs.codehaus.org/display/GroovyJSR/Groovy+String+Handling
精彩评论