Size: a a a

2020 September 11

СП

Сергей Пятыгин... in Delphi & Lazarus
Fatal: Syntax error, ";" expected but "<" found
источник

АВ

Александр В... in Delphi & Lazarus
В FPC там по другому дженерики работают
источник

АВ

Александр В... in Delphi & Lazarus
TIntegerList = specialize TList<Integer>;
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Александр В
TIntegerList = specialize TList<Integer>;
Добавил uses fgl; А дальше-как мартышка и очки...
источник

RS

Renat Suleymanov in Delphi & Lazarus
Alexey Shumkin
тут j >= Length должно быть ;))
Точно, с ходу написал, опечатка )
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Александр В
TIntegerList = specialize TList<Integer>;
type

 { TWinding }

 TWinding = class
   TIntegerList = specialize TList<Integer>;

Fatal: Syntax error, ":" expected but "=" found
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
List: TList<Integer> такой синтаксис Лазарус не пропускает.
Используй TFPGList из модуля fgl
источник

RS

Renat Suleymanov in Delphi & Lazarus
Alexey Shumkin
у тебя какая версия паскаля? с дженериками? )
Дженерики в FPC появились раньше, чем в Delphi. Так что можно сказать почти в любой она есть, если не слишком древняя
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
type

 { TWinding }

 TWinding = class
   TIntegerList = specialize TList<Integer>;

Fatal: Syntax error, ":" expected but "=" found
А что у тебя объявление класса TWinding открывается и не закрывается?
источник

RS

Renat Suleymanov in Delphi & Lazarus
Renat Suleymanov
А что у тебя объявление класса TWinding открывается и не закрывается?
Или у тебя тип класса (довольно специфично, но возможно), в этом случае нужно объявить раздел public type внутри класса
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
type

 { TWinding }

 TWinding = class
   TIntegerList = specialize TList<Integer>;

Fatal: Syntax error, ":" expected but "=" found
Суть в том, что компилятор думает, что TIntegerList это поле у тебя. Ты объявляешь тип внутри типа. Это возможно, но это делается не так. Скорее ты хотел все-таки два разных типа объявить, невложенные
источник

АВ

Александр В... in Delphi & Lazarus
Объявление типа класса вынести за класс, а свое поле FIntegerList: TIntegerList
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Подскажите пожалуйста, в чем отличие TFPGList и TList. Один дженерик, другой нет, это понятно. Принципиальная разница дженериков в том что они могут работать с разными типами в отличие от TList, который работает только с указателями? Поэтому я могу добавить в TFPGList - integer и тп?
источник

AW

Alex Wow in Delphi & Lazarus
Лист тоже работает с любыми типами данных так как ты передаешь указатель
источник

AZ

Andrey Zubov in Delphi & Lazarus
коллекция же
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
А в чем тогда преимущество дженериков?
источник

AW

Alex Wow in Delphi & Lazarus
Если не углубляться ,то ты работаешь с тем типом который передал ,без разиминовывания
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
А в чем тогда преимущество дженериков?
Удобство
источник

RS

Renat Suleymanov in Delphi & Lazarus
и лаконичность (иногда) кода
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
Подскажите пожалуйста, в чем отличие TFPGList и TList. Один дженерик, другой нет, это понятно. Принципиальная разница дженериков в том что они могут работать с разными типами в отличие от TList, который работает только с указателями? Поэтому я могу добавить в TFPGList - integer и тп?
У FPC есть еще дженерики списки с хешами. Там удобство еще более очевидно в сравнении с обычным TList
источник