如何避免heredoc中的最后一个字符

Tan*_*onk 9 ruby heredoc

在红宝石heredoc:

a = <<~TEXT
  asd
  asd
TEXT
Run Code Online (Sandbox Code Playgroud)

它会产生:

[21] pry(main)> a = <<~TEXT
[21] pry(main)*   asd
[21] pry(main)*   asd
[21] pry(main)* TEXT
=> "asd\n" + "asd\n"
Run Code Online (Sandbox Code Playgroud)

\n在字符串的末尾生成一个,如何避免这种情况?

Ger*_*rry 15

正如sagarpandya82指出的那样,你需要一个额外的动作(即chomp)去除额外的\n.

您可以使用chomp沿着定界符是这样的:

a = <<~TEXT.chomp
  asd
  asd
TEXT
#=> "asd\nasd"
Run Code Online (Sandbox Code Playgroud)

  • 来源:https://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Here+Documents (2认同)