开发者

in groovy, how to assign multiline string WITHOUT ESCAPING slash(\) and without interpolation

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜