【发布时间】:2018-07-02 15:58:50
【问题描述】:
在使用 Ruby 模块 YAML 时,我遇到了一个我不理解的行为。
多行字符串的String#to_yaml 有时会在管道字符之后添加字符“2”:“|2”与仅“|”。
特别是,当第一行为空时,它会这样做。
有什么线索吗?
这是一个例子:
C:\Users\Burdette>irb
irb(main):001:0> RUBY_VERSION
=> "2.2.6"
irb(main):002:0> require 'yaml'
=> true
irb(main):003:0> s = <<EOT
irb(main):004:0" 1
irb(main):005:0" 2
irb(main):006:0" 3
irb(main):007:0" EOT
=> "1\n2\n3\n"
irb(main):008:0> puts s.to_yaml
--- |
1
2
3
=> nil
irb(main):009:0> s = "\n" + s
=> "\n1\n2\n3\n"
irb(main):010:0> puts s.to_yaml
--- |2
1
2
3
=> nil
irb(main):011:0> exit
【问题讨论】:
-
那个
2是一个缩进指示符,它表示块缩进2个空格。 -
我没有缩进。空行是否相当于缩进请求?此外,如果我将每行缩进 4 个空格,则可以使用该间距,并且无论有无前导空行,我仍然会得到“|2”。