Какая разница между методами класса и типа в 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