ruby - 多行字符串格式

标签 ruby

尝试在 Ruby 中格式化多行字符串

heredoc%q{ } 的问题是它们包含用于格式化代码的空格。

s = %q{Foo
         Bar
         Baz}
puts s

错误地输出以下内容:

Foo
          Bar
          Baz   

以下是可行的,但是对于 \ 字符来说有点难看。

s = "Foo\n" \
    "  Bar\n" \
    "  Baz"
puts s

以下在 python 中有效:

s = ("Foo\n"
     "  Bar\n"
     "  Baz")
print s

Ruby 中是否有等效项?

最佳答案

构建没问题,但比我想的要危险得多

s = %w{ Foo
        Bar
        Baz}

puts s

=> 
Foo
Bar
Baz

如果你想保留第一行的缩进,这肯定是设计好的

s   = <<-END
        Foo
          Bar
          Baz
      END
puts s

=>
        Foo
          Bar
          Baz

关于ruby - 多行字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113043/

相关文章:

ruby - 在符号上链接 & to_proc

ruby-on-rails - 条件重定向的最佳方式?

c# - Ruby 到 C# 的转换,分配给按范围索引的数组

ruby - 在 Ruby 中是否有一种惯用的方法来指定可选参数的默认值?

ruby-on-rails - 使用 API key 的 RSpec 请求规范

ruby - 正则表达式:如何使用正则表达式(在 ruby​​ 中)从电子邮件中获取/提取信息?

ruby-on-rails - Rails - 如何检查一个变量是否存在以及它是否在一条语句中具有特定值

ruby - 在 Ruby 哈希上调用时, `select` 和 `select!` 之间是否存在性能差异?

ruby - 从 Ruby Hash 中获取独特的内容

ruby - 理解 Ruby 类实例变量