Какая разница между методами класса и типа в Ruby? Я заметил, что тип работает, чтобы найти тип некоторых классов, но не другие.
Class() vs. type() в Ruby
Ответ 1
Ключевым отличием является то, что Object#type устарел. Из типа RDoc для объекта #:
Устаревший синоним класса Object #.
Вот почему вы должны использовать Object#class:
Возвращает класс obj, теперь предпочтительнее, чем тип объекта #, как Тип объекта в Ruby свободен только привязан к классу этого объекта. Эта метод всегда следует вызывать с помощью явный приемник, поскольку класс также является зарезервированное слово в Ruby.
В действительности вы, вероятно, захотите использовать Object#respond_to? вместо проверки класса объекта в большинстве случаев.
Ответ 2
#type является синонимом #class, но он устарел в рубине 1.8 и, по-видимому, вышел из рубина 1.9. Просто используйте #class везде.
# For ruby 1.8
$ ri Object#type
------------------------------------------------------------ Object#type
obj.type => class
------------------------------------------------------------------------
Deprecated synonym for Object#class.
# For ruby 1.9
$ ri1.9 Object#type
Nothing known about Object#type