5

groovy では、補間なしでエスケープなしの複数行の文字列が必要な場合はどうすればよいですか

何かのようなもの:

    var1="hello hello"   
    var2="""/   
      adakldjkadj\^mk   
      as@da\kl#DFD#$#   
      ${var1}   
      d3&657\7fdsfsf   
    /"""   

println var2;

次のように、そのまま正確に出力する必要があります。

adakldjkadj\^mk
as@da\kl#DFD#$#
${var1}
d3&657\7fdsfsf

つまり、${var1} は展開されておらず、\ のエスケープは必要なく、複数行の文字列です
THEN HOW TO ASSIGN THIS HEREDOC STRING IN GROOVY. これは、bash スクリプト、ruby、perl などで可能です。

ruby では次のように表現されます ('EOL' のように区切り文字が引用符で囲まれていることに注意してください)

a = <<'EOL'   
  adakldjkadj\^mk   
  as@da\kl#DFD#$#   
  yes ${var1}   
  d3&657\7fdsfsf   
EOL   

Groovyでそれを行う方法は?

4

3 に答える 3

1

できません。こちらを参照してください: https://issues.apache.org/jira/browse/GROOVY-411

于 2011-03-15T11:38:51.280 に答える
1

一重引用符を使用すると、さらに近づくことができますが、探しているものにはまだなりません。${var1} はもう展開されません。

\ に関しては、これは常に特殊文字の java/groovy 区切り文字であるため、常にエスケープする必要があります。

編集: 彼らは 1.8 でこれに取り組んでいるか、すでに 1.8 に入っているようです。現在、1.7 しか実行していないため、テストしたり、コード例を提供したりすることはできません。

于 2011-03-15T12:12:53.307 に答える