Java Integer.MAX_VALUE?
的Ruby等价物是什么。希望本地人。
亚军:如果没有等效,我需要为Time对象设置它,所以不是硬编码整数2116-02-20的最大日期,是否有一个系统常量可以用于此?
答案 0 :(得分:3)
整数没有最大值,它们会自动转换为“bignum”表示:
1 << 64
# => 18446744073709551616
(1 << 64) + 1
# => 18446744073709551617
除了记忆之外,真的没有限制:
1 << (1 << 16)
# => 20035299304...(thousands of digits)...05719156736
至于时间,它同样没有界限,所以现在你可以在宇宙热死之后很好地表达时间,如果你真的想要:
Time.at(1<<128)
# => 10783118943836478994022445751222-08-06 04:04:16 -0400
这曾经被限制在通常的+/- 21亿范围内,受2038 problem的限制,但自Ruby~1.9以来情况并非如此。除了从Windows的角度来看,我不确定2116因素在哪里。
如果你想知道可以用“原生”整数表示的最大/最小值,那么这取决于平台。 32位和64位二进制文件具有不同的限制。