Как я могу присвоить переменной самое большое 32-битное значение со знаком в ruby, не определяя его явно - PullRequest
0 голосов
/ 06 июня 2019

Я хочу иметь возможность присвоить переменной номер 2147483647, максимальное 32-разрядное целое число со знаком.Есть ли способ, которым я могу получить значение из класса, например, Integer :: MAX?

1 Ответ

6 голосов
/ 06 июня 2019

В CRuby 2.5 и новее вы можете делать следующее:

require 'rbconfig/sizeof'
RbConfig::LIMITS['INT32_MAX']  # => 2147483647

Ключи RbConfig::LIMITS являются именами макросов ограничения C (см. <limits.h>, <stdint.h> и <float.h>)кроме FIXNUM_*, который является подробностью реализации Ruby.

Я рекомендую определить вашу собственную константу (или локальную переменную) для этих ограничений.Это более портативный.

...