2012-07-13 4 views
5

В Радости Clojure говорится, что:переопределение поля Рекордное в Clojure

вы даже можете переопределить запись, если желательно иметь различные поля давая вам скомпилированный производительность Java динамически

Может кто-нибудь подскажет мне, как это делается?

Благодаря

+0

Какой раздел/страница? – Kevin

+0

@Kevin Page 191 - http://www.manning.com/fogus/Sample-Ch9.pdf :) –

+0

Вы имеете в виду, как производится переопределение записи? – Ankur

ответ

6

В главе 9 мы гуляем по определению протокола FIXO и расширений к обоим TreeNode записи и TreeNode типа. Мы показываем, что наращивание реализации FIXO может быть выполнено динамически. Фактически, мы начинаем с записи TreeNode, расширяем протокол FIXO, а затем определяем тип TreeNode и расширяем вместо него FIXO. Хотя мы не меняем количество полей, мы сами меняем сам тип и после его расширения все вызовы через протокол FIXO разрешают новый тип (нам также необходимо было переопределить расширение FIXO на nil, поскольку оно возвращало старую запись, на основе NodeType.

вы бы скорее всего не сделать это в коде, который вы бы развернуть, но это полезный метод, когда экспериментировать. Попробуйте пройти через раздел FIXO и проверки типов, как вы идете.

Смежные вопросы