在我的YAML文件中,我有:
foo:
- '0777'
当我在我的代码中加载文件(result = YAML.load_file(...)
)时,我得到了
result[:foo] = [511]
这在Ubuntu上发生。在Mac上它是正确的(["0777"]
)。更改为:
foo:
- "'0777'"
它适用于Ubuntu但字符串包含引号:'0777'
。
为什么?
答案 0 :(得分:2)
在Ruby中Integer
如果参数是字符串,并且恰好以0x
,0b
,0
开头,则将其解释为十六进制,二进制,八进制字符串分别
因此,0777
被视为八进制字符串。自'0777' octal = '511' decimal
开始,您的结果为511
。