| |||
|
|
goбъектное-5 О прошлом: Возникает естественный вопрос - могла ли эта модель быть реализована в начале 70-х. По сложности реализации она не сложнее классического Simula/C width classes-style ОО. По практичности она их сильно превосходит. Один подводный камень в ней есть: при реализации интерфейса как просто таблички для лукапа методов возникает проблема преобразования значений типа интерфейс - которая требует потенциально динамического формирования новой таблицы по полученной старой. И тут возникает Сборка Мусора™. Можно ли выкрутиться - видимо да - но ценой некоторого усложнения VMT и некоторой потери в эффективности (хотя время доступа останется константой). Примерно по той модели, по которой аналогичная фича реализаована в O'Caml (см Didier Rémy. Efficient Representation of Extensible Records). Как это на самом деле сделано в Go, я пока не разобрался. Добавить комментарий: |
||||||||||||||