【问题标题】:How to avoid last \n character in heredoc如何避免heredoc中的最后一个\ n字符
【发布时间】:2017-12-25 22:07:16
【问题描述】:

在红宝石 heredoc 中:

a = <<~TEXT
  asd
  asd
TEXT

它会生成:

[21] pry(main)> a = <<~TEXT
[21] pry(main)*   asd
[21] pry(main)*   asd
[21] pry(main)* TEXT
=> "asd\n" + "asd\n"

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

【问题讨论】:

    标签: ruby heredoc


    【解决方案1】:

    作为sagarpandya82 points out,您将需要额外的操作(即chomp)来删除额外的\n

    你可以像这样使用chompheredoc

    a = <<~TEXT.chomp
      asd
      asd
    TEXT
    #=> "asd\nasd"
    

    【讨论】:

    【解决方案2】:
    <<-TEXT.squish.squeeze(' ')
      aa
                      b
    TEXT
    # => "aa b"
    

    【讨论】:

    • 虽然此代码可能会解决问题,但 including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的答案添加解释并说明适用的限制和假设。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2015-03-25
    • 2015-03-11
    • 2023-01-13
    相关资源
    最近更新 更多