Re[2]: Есть ли в Библиотеки Немерли интернирование объектов?
От:
Аноним
Дата:
04.05.14 11:11
Оценка:
Здравствуйте, Don Reba, Вы писали:
DR>Макрос StructuralEquality.
Разве он позволяет такое?
вроде у него нет хештаблицы хранения хеша объектов для быстрого нахождения одинаковых и возврата ссылки на существующий, если подобный объект есть.
Кроме того при изменении поля насколько я знаю он не создает копию объекта если объектов несколько.
Re[3]: Есть ли в Библиотеки Немерли интернирование объектов?
Здравствуйте, Аноним, Вы писали:
А>Разве он позволяет такое? А>вроде у него нет хештаблицы хранения хеша объектов для быстрого нахождения одинаковых и возврата ссылки на существующий, если подобный объект есть. А>Кроме того при изменении поля насколько я знаю он не создает копию объекта если объектов несколько.
Да, действительно. Тогда не знаю.
Ce n'est que pour vous dire ce que je vous dis.
Re: Есть ли в Библиотеки Немерли интернирование объектов?
Здравствуйте, Аноним, Вы писали:
А>Возможно мне понадобиться. Нечто вроде
А>[Intern] А>[Record] А>class ddd А>{ А> double a; А> double b; А> double c; А> double d; А>}
А>def d=ddd(1,1,1,1); А>def k=ddd(1,1,1,1)
А>ddd.ReferenceEquals(d, k) // true
А>Как делать относительно понятно, вопрос, сделано ли?
Помнится кто-то писал, что конструктор в Nemerle может возвращать левый инстанс. Если это так, то такой макрос сделать не сложно — мемоизация по набору параметров с харанением в статическом словаре (+решение проблем с многопоточностью, если нужно). Правда, память может неявно течь...
Re[2]: Есть ли в Библиотеки Немерли интернирование объектов?
Здравствуйте, artelk, Вы писали:
A>Помнится кто-то писал, что конструктор в Nemerle может возвращать левый инстанс. Если это так, то такой макрос сделать не сложно — мемоизация по набору параметров с харанением в статическом словаре (+решение проблем с многопоточностью, если нужно). Правда, память может неявно течь...
?
Тут можно и макрос и просто статический метод применить.
Будет выглядеть как конструктор , но им не являться.
Сам конструктор ничего лишнего возвращать не может, как бы он ничего и не возвращает, все делает CLR.
Посему либо обычная фабрика Factory.Create(...) , либо небольшой трюк =)
Здравствуйте, _NN_, Вы писали:
_NN>Сам конструктор ничего лишнего возвращать не может, как бы он ничего и не возвращает, все делает CLR. _NN>Посему либо обычная фабрика Factory.Create(...) , либо небольшой трюк =)
Здравствуйте, artelk, Вы писали:
A>Здравствуйте, _NN_, Вы писали:
_NN>>Сам конструктор ничего лишнего возвращать не может, как бы он ничего и не возвращает, все делает CLR. _NN>>Посему либо обычная фабрика Factory.Create(...) , либо небольшой трюк =)
A>Похоже это заблуждение у меня с вот таких