2009-09-18 4 views
0

Как извлечь имя класса из его объекта?Название класса по его объекту

Например, у меня есть объект @list, который, как я знаю, является экземпляром класса List. Но как я могу извлечь это непосредственно в коде?

ответ

4

Этот вид информации является довольно простым рубиновым программированием. Ответ:

object.class 

Extra наконечник в следующий раз: попытаться найти эту информацию самостоятельно в the core library documentation. Вы знаете, что у вас есть какой-то объект, просто начните читать документацию, и вы найдете какой-то метод, который удовлетворит ваши потребности. Информацию о методах, которые вы можете выполнить на объекте, можно найти here.

1

Если вы хотите проверить для экземпляра определенного класса, я бы что-то вроде:

@list.is_a?(List) 
+0

это не совсем правильно, так как is_a? возвращает true для всех классов предков, поэтому '@ list.is_a? (Object)' также возвращает true – Eimantas

+0

Что не так с этим? Если у вас есть список, он возвращает true. Если у вас есть подкласс List, он также возвращает true. Кажется правильным в любом случае. –

0

Как Эдвин сказал, object.class даст вам соответствующий объект класса. Если вам просто нужно имя класса, используйте object.class.name.