gpt4 book ai didi

ruby - 为什么 YAML 将 '0777' 解释为 511?

转载 作者:数据小太阳 更新时间:2023-10-29 09:02:06 29 4
gpt4 key购买 nike

在我的 YAML 文件中我有:

foo:
- '0777'

当我在代码中加载文件时 (result = YAML.load_file(...)) 我得到了

result[:foo] = [511]

这发生在 Ubuntu 上。在 Mac 上它是正确的 (["0777"])。当更改为:

foo:
- "'0777'"

它适用于 Ubuntu,但字符串包含引号:'0777'

为什么?

最佳答案

在 Ruby 中对于 Integer 如果参数是字符串,并且恰好以 0x, 0b, 0 开头>,分别解释为十六进制、二进制、八进制字符串。

因此此处 0777 被视为八进制字符串。由于 '0777' octal = '511' decimal,您将得到 511 作为结果。

reference

关于ruby - 为什么 YAML 将 '0777' 解释为 511?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33168329/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com