为什么Integer("09")在ruby中抛出异常而Integer("07")工作得很好?

cmt*_*kur 2 ruby

我正在使用ruby 1.9.3

为什么Integer("09")在ruby中抛出"Integer异常值无效",而Integer("07")运行得很好?

提前致谢.

Pas*_*uoq 8

因为前导零是八进制("基数8")表示法的通用约定.9八进制中没有数字,因此使用它是一个语法错误.

如果您已经写过Integer("014"),那么您将获得数字12.(因此,如果您不打算使用八进制表示法,请不要使用前导零.)