Вам не нужно этого делать, ваш метод можно заменить с помощью регулярного выражения /^[0-9]*$/
. ^
сообщает, что соответствует началу строки, а $
сообщает, что соответствует концу строки. Таким образом, оно будет соответствовать: начало строки, от 0 до любого в диапазоне от 0 до 9 и, наконец, конец строки.
def is_int(test_me)
test_me =~ /^[0-9]*$/
end
И вам не нужны операторы return, Ruby неявно возвращает последний оператор.
Edit:
Вероятно, было бы проще и выглядело бы лучше использовать метод экземпляра to_i
класса String
.
def is_int(test_me)
test_me.to_i.to_s == test_me
end
Редактировать: (сделал несколько тестов)
Сравнение производительности между двумя методами показывает, что .to_i.to_s ==
путь на 5% быстрее. Таким образом, все зависит от ваших личных предпочтений, которые когда-либо выглядят лучше, и если вы хотите обрабатывать лидирующие нули.