我遇到了似乎是 YAML 解析器的错误。以这个简单的 yaml 文件为例:
new account:
- FLEETBOSTON
- 011001742
如果您使用此 ruby 代码行解析它:
INPUT_DATA = YAML.load_file("test.yml")
然后我得到这个:
{"new account"=>["FLEETBOSTON", 2360290]}
难道我做错了什么?因为我很确定这永远不会发生。
它应该发生。0
以八进制开头的数字。除非下一个字符是x
,在这种情况下它们是十六进制的。
07 == 7
010 == 8
011 == 9
0x9 == 9
0xA == 10
0xF == 15
0x10 == 16
0x11 == 17
进入irb
并输入011001742
.
1.9.2-p290 :001 > 011001742
=> 2360290
PEBKAC。:)
你的号码是一个数字,所以它被视为一个数字。如果您想明确地将其设为字符串,请将其括在引号中,这样 YAML 就不会尝试将其设为数字。
new account:
- FLEETBOSTON
- '011001742'