Как проверить, является ли переменная экземпляром класса

В Java вы можете сделать instanceof . Есть ли в Ruby эквивалент?

62
задан steenslag 16 December 2015 в 21:28
поделиться

3 ответа

Это почти то же самое. Вы можете использовать метод Object instance_of?:

"a".instance_of? String # => true
"a".instance_of? Object # => false

В Ruby также есть методы is_a? и kind_of? (эти два метода являются псевдонимами и работают одинаково), который возвращает true, если один из суперклассов совпадает:

"a".is_a? String # => true
"a".is_a? Object # => true
127
ответ дан 24 November 2019 в 16:38
поделиться

Посмотрите на методы instance_of? и kind_of? . Вот ссылка на документ http://ruby-doc.org/core/classes/Object.html#M000372

6
ответ дан 24 November 2019 в 16:38
поделиться

Я добился успеха с классом , который возвращает объект класса. Похоже, это специфично для Rails.

Пример использования:

class Foo
end

Foo.new.klass
# => Foo

Foo.new.klass == Foo
# => true

Foo.new.klass == "Foo"
# => false

Существует также метод, который выполняет это: Object.is_a? , который принимает объект класса в качестве аргумента и возвращает истину, если self является экземпляр класса или экземпляр подкласса.

5
ответ дан 24 November 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: