Подпишитесь на рассылку о самых интересных материалах в мире веб-разработки :)

Получить тип переменной


(Aleksandr Dabizha) #1

Всем привет.
Вопрос по большому счету тривиален. Но тем не менее…
Как-то даже не подозревал, что на подобной “мелочи” застряну. Больше часа сегодня ночью пытался найти ответ на простой вопрос - как определить тип переменной в ruby. Получить тип переменной в C++, C#, PHP, JS - естественно, вообще никаких проблем не вызывает ))).
Понятно, что проблема в отсутствии знаний по Ruby. Так получилось, что “на лету” надо допилить функционал для ресурса на ROR. Ранее с ROR и Ruby не сталкивался.
Ребята, как узнать, что one=1 - это integer, two=‘str’ - это string, а three = [1,2,3] - array ?


#2

Один из способов это вызвать у переменной метод .class и проверять результат.
В руби всё объект.
Fixnum (Integer начиная с 2.4):
5.class == Integer => true


(Aleksandr Dabizha) #3

Ага, всё-таки так.
Можно и регулярку прикрутить…
Ок. Спасибо, middleman!


(Evgeniy) #4

5.is_a?(Integer) => true


(Kvokka) #5

case my_var
when Fixnum then 1
when String then 2
else 3
end

5.class # Fixnum, а не Integer