Каков тип данных имени класса? Или в правильных терминах, каков класс этой константы? Постоянный класс или модуль в рубине?Что такое тип данных (класс) имени класса в рубине?
class Abc
end
Что такое Abc
?
Каков тип данных имени класса? Или в правильных терминах, каков класс этой константы? Постоянный класс или модуль в рубине?Что такое тип данных (класс) имени класса в рубине?
class Abc
end
Что такое Abc
?
Так какой же тип данных этой константы i.e.-string, integer.
класс является экземпляром класса Class
.
Вы можете проверить это (как и с любым другим объектом, просто вызовите .class
на него):
Abc.class
#=> Class
постоянен класс или модуль в Ruby?
Ни то, ни другое. Константа - постоянная. Константа присвоила значение.
Каков тип данных имени класса?
Что вы подразумеваете под "class name"? Классы действительно не имеют имен в Ruby. Классы имеют метод name
, который возвращает человеко-читаемое имя для класса как String
.
Или в правильном смысле, что такое класс этой константы? Постоянный класс или модуль в рубине?
Ни то, ни другое. Константы не являются объектами в Ruby, поэтому они не имеют класса. (Это то же самое, что и во всех других языках.)
Что такое
Abc
?
Постоянная ссылка на объект класса Class
.
Кстати: я заметил, что вы использовали термины «тип» и «класс» взаимозаменяемо, но это не так. Типы и классы - это разные вещи.
«Abc - это константа, которая ссылается на объект класса Class». Означает ли это, что константа Abc содержит ссылку на объект класса Class? – ancho
№ 'Abc' содержит ссылку на объект, который является * экземпляром класса' Class'. –
'Abc' является константой, но также является классом и, следовательно, модулем и объектом :-) – Stefan
@Stefen может, пожалуйста, поделиться ссылкой, потому что многие другие комментарии противоречат этому. – ancho
Конечно: 'определено? AbC# => "constant" и 'Abc.is_a? Класс # => true' и 'Abc.is_a? Module # => true' и 'Abc.is_a? Объект # => true' – Stefan