Thread View: pl.comp.lang.pascal
8 messages
8 total messages
Started by webmajsterek
Thu, 29 Apr 2010 21:38
Generic
Author: webmajsterek
Date: Thu, 29 Apr 2010 21:38
Date: Thu, 29 Apr 2010 21:38
11 lines
1142 bytes
1142 bytes
we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych np: Generic ( http://wiki.freepascal.org/Generics ) i specialize . moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa ??? albo jakiś przykład z opisem po polsku. -- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: Generic
Author: Łukasz 'Maly' Ostrowski
Date: Thu, 29 Apr 2010 21:48
Date: Thu, 29 Apr 2010 21:48
18 lines
1416 bytes
1416 bytes
On Thu, 29 Apr 2010 23:38:01 +0200, webmajsterek@poczta.onet.pl wrote: > we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych > > np: Generic ( http://wiki.freepascal.org/Generics ) i specialize . > > > moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa ??? > albo jakiś przykład z opisem po polsku. Wiesz jak działają template's? Po polsku? Mocno typowane kolekcje przykładowo? Więcej!?!??!?!!!!!!!!!!!!?!!?!???????????? -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/ ICQ: 148498663 GG: 2544385 AIM: malyzgora GTalk: l3vi4than@gmail.com ASTRA: L3viathan
[OT]Re: Generic
Author: Terrmit
Date: Thu, 29 Apr 2010 23:21
Date: Thu, 29 Apr 2010 23:21
13 lines
1453 bytes
1453 bytes
> On Thu, 29 Apr 2010 23:38:01 +0200, webmajsterek@poczta.onet.pl wrote: > > Wiesz jak działają template's? Po polsku? Mocno typowane kolekcje > przykładowo? Więcej!?!??!?!!!!!!!!!!!!?!!?!???????????? > Na widok webmajsterka Łukaszowi włos się zjeżył, że aż mu klawisze ? i ! wpadły w dygotanie. Sorry, ale uśmiałem się szczerze :) Chociaż, niby czemu nie po polsku? Tak! Polski to nasz język! (Jak sądzę) ;p Sławek
Re: [OT]Re: Generic
Author: Łukasz 'Maly' Ostrowski
Date: Fri, 30 Apr 2010 09:29
Date: Fri, 30 Apr 2010 09:29
22 lines
1610 bytes
1610 bytes
On Fri, 30 Apr 2010 01:21:54 +0200, Terrmit wrote: > Na widok webmajsterka Łukaszowi włos się zjeżył, > że aż mu klawisze ? i ! wpadły w dygotanie. > > Sorry, ale uśmiałem się szczerze :) > Chociaż, niby czemu nie po polsku? > Tak! Polski to nasz język! (Jak sądzę) ;p Jezus chytrus, trzeźwy wczoraj nie byłem przesadnie, wybaczcie ;-). Nasz Webmajsterek i tak nie przebija typa z pl.comp.lang.c pewnego ;-). Zadaje normalne pytania, w zryty sposób, ze zrytą interpunkcją, zrytą polszczyzną. A typ z p.c.l.c + zryte pytania + zryta głowa. ;-) -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/ ICQ: 148498663 GG: 2544385 AIM: malyzgora GTalk: l3vi4than@gmail.com ASTRA: L3viathan
Re: Generic
Author: darekm
Date: Fri, 30 Apr 2010 12:37
Date: Fri, 30 Apr 2010 12:37
63 lines
2960 bytes
2960 bytes
W dniu 2010-04-29 23:38, webmajsterek@poczta.onet.pl pisze:
> we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych
>
> np: Generic ( http://wiki.freepascal.org/Generics ) i specialize .
>
>
> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa ???
> albo jakiś przykład z opisem po polsku.
>
>
type
GList = generic class of T
public
procedure Add(const stuff: T);
end;
Tworzysz definicję obiektu GList dla pewnego abstrakcyjnego typu danych
(w powyższym przykładzie T)
T można używać jak jakiś super uniwersalny obiekt, na którym
dopuszczalna jest każda operacja:
T:=T+1;
T.add;
x:=t.Create;
abs(T)
itd.
na tym etapie kompilatora obchodzi tylko (częściowa) poprawność składniowa.
Następnie użycie takiego generycznego obiektu (specjalizacja):
GList<string>
kompilator generuje kod programu na podstawie uprzedniej definicji
podstawiając zamiast T żądany typ (czyli string) a następnie dokonuje
normalnej już normalnej kompilacji.
Innymi słowy jest to forma preprocesora kodu, który bierze tekst
programu, odpowiednie go modyfikuje (dokonuje podstawień) i tak
utworzony kod przekazuje do właściwej kompilacji.
w dużym uproszczeniu można to samo osiągnąć korzystając z makrodefinicji
$Include i $Define
Po co to stosujemy:
1. Gdy takie same algorytmy stosujemy dla różnych typów danych (inna
możliwość to dziedziczenie i interface)
2.Gdy chcemy uniknąć stosowania funkcji wirtualnych (są wolniejsze od
zwykłych)
3. Tzw silne typowanie, choć pascal jest naturalnie silnie typowany
4.Zwiększenie czytelności programu: rozdzielenie uniwersalnej części
algorytmu od wariantów wykorzystujących pewne indywidualne własności
niektórych typów danych (template vs specialize)
Darek
--
Darek
Re: Generic
Author: Wiktor S.
Date: Thu, 06 May 2010 08:46
Date: Thu, 06 May 2010 08:46
8 lines
1085 bytes
1085 bytes
> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa ??? Nie działa, bo póki co ma zbyt poważne błędy. Delphi zresztą też, widocznie to trudny temat. -- Azarien
Re: Generic
Author: wloochacz
Date: Thu, 06 May 2010 09:30
Date: Thu, 06 May 2010 09:30
15 lines
1342 bytes
1342 bytes
Wiktor S. pisze: >> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa ??? > > Nie działa, bo póki co ma zbyt poważne błędy. > Delphi zresztą też, widocznie to trudny temat. Co Delphi zresztą też? Że w Delphi nie działają generyki? Skoro jest jak twierdzisz, to jakim cudem np. działają poniższe biblioteki: http://code.google.com/p/delphi-spring-framework http://code.google.com/p/delphilhlplib/ ?? -- wloochacz
Re: Generic
Author: Wiktor S.
Date: Thu, 06 May 2010 14:58
Date: Thu, 06 May 2010 14:58
13 lines
1244 bytes
1244 bytes
>>> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś działa >> Nie działa, bo póki co ma zbyt poważne błędy. >> Delphi zresztą też, widocznie to trudny temat. > Co Delphi zresztą też? > Że w Delphi nie działają generyki? a działają już ze stringami? -- Azarien
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads