powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: дженерики
20 сообщений из 70, страница 3 из 3
Lazarus: дженерики
    #39476892
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyЭтим не ограничивается. Возьмём другой пример. У тебя коллекция имеющая метод ToString, который должен вернуть строковое представление всех хранимых данных. Писать такое на дельфийских дженериках - проще застрелиться, а на фпц'шных пишется элементарноДа в общем ясно. В дельфях пое-аться надо пиcателю дженерик класса, а в лазаре его пользователю. :)
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476896
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

непонятно.

Для типа
Код: pascal
1.
2.
3.
4.
5.
6.
pRMyRec = ^RMyRec;
RMyRec = record
  o : TObject;
  i : Integer;
  pr : pRMyRec;
end;


- сложение покажи.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476904
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatа в лазаре его пользователю. :)
Шта? В дельфях тебе так же будет нужен метод ToString, если захочешь корректного представления, а не как ты его себе видишь. Только для этого ты с ещё с RTTI попляшешь, что конечно очень молодёжно и вообще передово.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476906
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жышысложение покажи
Переопределяешь оператор сложения в своём типе, а код дженерика остаётся прежним.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476912
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyЖышысложение покажи
Переопределяешь оператор сложения в своём типе, а код дженерика остаётся прежним.

Не-по-нят-но.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476913
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жышы,

Класс оператор сложения писать надо.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476915
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЖышы,

Класс оператор сложения писать надо.

В где?
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476922
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жышы,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
pRMyRec = ^RMyRec;
RMyRec = record
  o : TObject;
  i : Integer;
  pr : pRMyRec;

  class operator Add(const A,B: RMyRec ): RMyRec; overload;
end;
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476926
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖышыНе-по-нят-но.
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Operator_Overloading_(Delphi)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
RMyRec = record
 ...
 Class Operator Add(Const ALeft, ARight : RMyRec) : RMyRec;

end;

...
Class Operator RMyRec.Add(Const ALeft, ARight : RMyRec) : RMyRec;
Begin
...
End;
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476927
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЖышы,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
pRMyRec = ^RMyRec;
RMyRec = record
  o : TObject;
  i : Integer;
  pr : pRMyRec;

  class operator Add(const A,B: RMyRec ): RMyRec; overload;
end;


А в лазарусе - не надо, сам собой сложится?
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476929
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyЖышыНе-по-нят-но.
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Operator_Overloading_(Delphi)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
RMyRec = record
 ...
 Class Operator Add(Const ALeft, ARight : RMyRec) : RMyRec;

end;

...
Class Operator RMyRec.Add(Const ALeft, ARight : RMyRec) : RMyRec;
Begin
...
End;


Это я знаю. Я не знаю, как в лазарусе.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476930
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жышы,

В лазарусе как раз надо. Не надо в дельфях.

Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476934
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЖышы,

В лазарусе как раз надо. Не надо в дельфях.

Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса.

Вы меня путает. А ведь у меня уже есть собственный персональный путаник!
...
Может, кто-то покажет код и в лазарусе и дельфи?
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476937
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖышыЯ не знаю, как в лазарусе
В фпц также. Кому, как не автору типа знать, каким образом правильно выполнять операции над своим типом. Код дженерика при этом остаётся простым и неизменным.


rgreatНе надо в дельфях.

Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса.
Не надо, агащазблин. В дельфях тоже надо, иначе наскладываешь там абстрактно такого... Просто в дельфях придётся лезть за методом оператора в RTTI. В общем, дженерики дельфийские это боль. Будь они нормальными, не нужны были бы пляски с этими вашими экьюалитикомпарерами с этой их косвенностью и динамичностью, которые ещё и болт кладут на кастомные операторы сравнения типов.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476939
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

В дельфях надо будет анонимную функцию сложения делать.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476941
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatВ дельфях надо будет анонимную функцию сложения делать
Уж лучше в RTTI...
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476943
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyУж лучше в RTTI...Слоупочно.
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476945
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatСлоупочно.
Как раз наоборот. В конструкторе класса получаешь адрес метода, сохраняешь...
...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476957
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

...
Рейтинг: 0 / 0
Lazarus: дженерики
    #39476958
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

Какие дженерики, такое и решение.
...
Рейтинг: 0 / 0
20 сообщений из 70, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: дженерики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]