https://plus.google.com/u/0/+PaulTOTH/posts/5BVhKN9Fw4C?cfem=1
Цитата:
"
here's still things I don't understand with Generic :/
"
Это ПРАВДА так?
Где тут "Incompatible types"?
Чего я не вижу?
(+) Только код. Коллекции от Embarcadero. Это что-то
(+) Generic'и в Delphi и шаблоны в C++. Коротко. Напишу грубость
(+) Про "примеси", шаблоны и Generic'и
(+) Про "примеси", шаблоны и Generic'и №2
(+) Containers 3. Generics and without Generics...
https://quality.embarcadero.com/browse/RSP-11388
Цитата:
"
here's still things I don't understand with Generic :/
type TValues<T> = array of record Key : string; Value: T; end;//TValues<T> TIntegerValues = TValues<Integer>; procedure TForm1.FormCreate(Sender: TObject); var V: TIntegerValues; begin SetLength(V, 1); V[0].Key := 'TEST'; V[0].Value := 1; // E2010 Incompatible types 'T' and 'Integer' end;
"
Это ПРАВДА так?
Где тут "Incompatible types"?
Чего я не вижу?
(+) Только код. Коллекции от Embarcadero. Это что-то
(+) Generic'и в Delphi и шаблоны в C++. Коротко. Напишу грубость
(+) Про "примеси", шаблоны и Generic'и
(+) Про "примеси", шаблоны и Generic'и №2
(+) Containers 3. Generics and without Generics...
https://quality.embarcadero.com/browse/RSP-11388
Этот комментарий был удален автором.
ОтветитьУдалитькамк всегда сожрал угловые скобки :(
ОтветитьУдалитьtype
TValue{T} = record
Key : string;
Value: T;
class function Create(K: string, V: T): TValue{T}; static;
end;//TValue{T}
TValues{T} = Array of TValue{T};
TIntegerValues = TValues{Integer};
class function TValue{T}.Create(K: string, V: T): TValue{T};
begin
Result.Key := K;
Result.Value := V;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
V: TIntegerValues;
begin
SetLength(V, 1);
V[0] := TValue.Create('TEST', 1);
end;
PS: код не проверял, возможно накосячил с массивом.