LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Проверка на соответствие типу там есть

Этого иногда хватает, но универсальную печать любого типа, мне кажется, так не получится сделать, во всяком случае, если система типов расширяемая.

А чтобы знать тип объекта, то разве не нужно хранить этот тип в самом объекте?

Динамически типизированный язык с точной сборкой мусора вынужден хранить достаточно много информации о типе. Нужно знать, как минимум, размер объекта и какие поля в нём являются ссылками на другие объекты. Также нужно как-то реализовать проверки на соответствие типу. Это в целом дешевле, чем знание точного типа, но разница мне представляется очень малой. Возможно, я ошибаюсь.

Исходная версия den73, :

Проверка на соответствие типу там есть

Этого иногда хватает, но универсальную печать любого типа, мне кажется, так не получится сделать, во всяком случае, если система типов расширяемая.

А чтобы знать тип объекта, то разве не нужно хранить этот тип в самом объекте?

Динамически типизированный язык с точной сборкой мусора вынужден хранить достаточно много информации о типе. Нужно знать, как минимум, размер объекта, какие поля в нём являются ссылками на другие объекты. Также нужно как-то реализовать проверки на соответствие типу. Это в целом дешевле, чем знание точного типа, но разница мне представляется очень малой. Возможно, я ошибаюсь.