AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Procedure vs Function, Vor- und Nachteile
Thema durchsuchen
Ansicht
Themen-Optionen

Procedure vs Function, Vor- und Nachteile

Ein Thema von KodeZwerg · begonnen am 15. Apr 2018 · letzter Beitrag vom 23. Apr 2018
Antwort Antwort
Seite 8 von 10   « Erste     678 910      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#71

AW: Procedure vs Function, Vor- und Nachteile

  Alt 18. Apr 2018, 22:36
{ IN .. Referenz . . . . . .} [ref] const Xxx: Txxx; // relativ neu
Kannst du mal genau erklären, was das genau ist bzw. hast du einen Link zu dem Thema? Würde mich mal echt interessieren.
Ich war da auch schon vergebens auf Suche, aber noch keine erfolgreiche Recherche, also bitte mehr Input dazu, kann ich nur zustimmen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#72

AW: Procedure vs Function, Vor- und Nachteile

  Alt 19. Apr 2018, 09:23
{ IN .. Referenz . . . . . .} [ref] const Xxx: Txxx; // relativ neu
Kannst du mal genau erklären, was das genau ist bzw. hast du einen Link zu dem Thema? Würde mich mal echt interessieren.
Ich war da auch schon vergebens auf Suche, aber noch keine erfolgreiche Recherche, also bitte mehr Input dazu, kann ich nur zustimmen!
Erster Google-Treffer für "[ref] const Delphi":
http://docwiki.embarcadero.com/RADSt...antenparameter
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#73

AW: Procedure vs Function, Vor- und Nachteile

  Alt 19. Apr 2018, 09:48
Kann es sein, dass Die Fragestellung nicht mehr im Vordergrund steht?


Beispiele
Delphi-Quellcode:
// Funktionen Vorteil, sie geben etwas direkt wieder
Function Beispiel : Boolean;
begin
  Result := True;
end;

// Proceduren können ja auch etwas wiedergeben per Var
// Nachteil, man benötigt eben eine Variable um das Var auszuwerten
Procedure Beispiel (var bResult: Boolean);
begin
  bResult := True;
end;
Aber was Unterscheidet die Beiden noch?
Die Frage ist : Wie willst Du das Ergebnis ansprechen. (Abgesehen von der "Var" Diskussion)

Beispiel:

Delphi-Quellcode:
var
  Person : TPerson;
  LHatAdresse : Boolean;
...
if Person.HatAdresse then oder
if TPerson.HatAdresse(Person) then oder
Delphi-Quellcode:
Person(LHatAdresse);
if LHatAdresse then
Wobei 1 und 2 eigentlich gleich sind besser vielleicht.

if TKunde.HatAdresse(Person) then weil der Vergleich nicht in TPerson sondern zentral im TKunden definiert ist.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#74

AW: Procedure vs Function, Vor- und Nachteile

  Alt 19. Apr 2018, 10:21
[ref] ist einer von vielen Standardattributen, abgesehn davon, dass es hier als "Ausnahme" direkt an den Compiler gerichtet ist.
[weak] und [unsafe] wind auch ganz nett.
http://docwiki.embarcadero.com/RADSt...iler-Attribute

Ansonsten kann man fast Allem auch eigene Attribute zuweisen und per RTTI zur Laufzeit auslesen.
z.B. gern genommen für's Test-Management, wo man direkt an Methoden seine Testfunktionen und Testparameter hinterlegen kann.

Ich hab in meinen Libs mal spaßeshalber [Admin] und andere benötigte Privilegien an den Funktionen hintelegt.

Delphi-Quellcode:
// Proceduren können ja auch etwas wiedergeben per Var
// Nachteil, man benötigt eben eine Variable um das Var auszuwerten
Procedure Beispiel (var bResult: LongBool);
begin
  InterlockedExchange(Integer(bResult), Integer(True)); // neben der WinAPI gibt es inzwischen auch System.AtomicExchange
end;
Je nach Anforderung kann das aber auch wieder ein Vorteil sein, denn so könnte diese Prozedur threadsave in diese Variable schreiben.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Apr 2018 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#75

AW: Procedure vs Function, Vor- und Nachteile

  Alt 19. Apr 2018, 10:32
Kann es sein, dass Die Fragestellung nicht mehr im Vordergrund steht?
Das was mir bei Thread-Erstellung durch den Kopf geschossen ist war die Frage wie im Titel.
Zacherl hat da sofort die passende Antwort geliefert: "Ist Wurscht.". Damit wäre der Thread bereits geschlossen gewesen.
Ich wollte tatsächlich mehr über die Interna erfahren hauptsächlich wegen Perfomance und Speicher ob Delphi das anders handhabt je nach dem was ich einsetze (Procedure vs Function).
Auch der im Thread beschriebene 5% Boost gehören dazu, was ja nur aufgedeckt wurde nachdem man vom Thema abwich.
Für mich als Thread-Ersteller kann ich nur sagen das ich über Input, auch wenn nicht 100% zum Thema passend aber dennoch irgendwie damit zusammen hängen könnte, mich sehr freue und nach wie vor die DP-Admins bitte den Thread nicht gleich dicht zu machen wenn es nicht ganz exakt das Thema treffen mag.
Ich bin zwar dadurch zum Leser degradiert aber genau darum ging es mir, nach und nach ploppten mehr und mehr Dinge hoch wo ich absolut nicht mitreden kann aber Wissen anreichern kann nie Schaden.

Danke auch für Deine Beispiele!


Einen schönen sonnigen Donnerstag Wünsche ich Euch allen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#76

AW: Procedure vs Function, Vor- und Nachteile

  Alt 19. Apr 2018, 10:57
AtomicDecrement und AtomicIncrement kannte ich bereits, AtomicExchange kenne ich noch nicht, Danke dafür!

edit
Erster Google-Treffer für "[ref] const Delphi":
Ja manchmal klappen bei mir auch die einfachsten Dinge nicht, Super Link dazu, Danke!
Gruß vom KodeZwerg

Geändert von KodeZwerg (19. Apr 2018 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#77

AW: Procedure vs Function, Vor- und Nachteile

  Alt 21. Apr 2018, 01:22
Auch der im Thread beschriebene 5% Boost gehören dazu
...was auch nur eine aus den Fingern gesaugte Zahl irgendeines Ultraprofis war. Einen Benchmark hat er dazu nicht geliefert, und ich habe sie dann mal so übernommen gehabt, da ich um ehrlich zu sein auch keine weiteren Nachforschungen diesbezüglich anstellen wollte. Aber wenn ich mir das Assembly von "oben" ansehe, dann wird es, je nach länge und Typ des Strings, durchaus mit Sicherheit deutlich über den willkührlich angenommenen "5%" liegen. Ich tippe da auf irgendwas zwischen 15 und 25% im Schnitt, den "const"-Aufrufe da rausholen können. Ist aber auch von mir hier nur eine Annahme, Belege habe ich dafür gerade nicht.
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#78

AW: Procedure vs Function, Vor- und Nachteile

  Alt 21. Apr 2018, 07:20
Moin moin zum Benchen hab ich für andere Beispiele das GetTick von Agner Fog genommen. Es kommt kein Zeitwert raus aber ein Wert mit dem man arbeiten kann. Getestet mit VAR OUT CONST hab ich es selbst noch nicht aber bei Bedarf kann ich es Nachreichen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#79

AW: Procedure vs Function, Vor- und Nachteile

  Alt 21. Apr 2018, 09:49
Ein Interface und damit auch eine Signatur ist in erster Linie für jene die eine proc/meth/func verwenden und nicht jenen der die Prozedur implementiert.

@Zacherl
Was mir in der Betrachtung fehlt, ist die Schreibschutzprüfung die ja bei const irgendwo stattfinden muß.
Der Schreibschutz wird nur zur Compilezeit gecheckt. Mit ein bisschen Pointergematsche kannst du const umgehen.
Delphi-Quellcode:
procedure TuWas(const X: Integer);
begin
// X := 987; <-- Geht nicht
  PInteger(@X)^ := 987;
  ShowMessage(IntToStr(X));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TuWas(123);
end;
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#80

AW: Procedure vs Function, Vor- und Nachteile

  Alt 21. Apr 2018, 09:56
Ein Unterschied zwischen Prozedur und Funktion musst du dir aus den Fingern saugen.

Ich habe mir das Thema noch mal angeschaut. In letzter Konsequenz einen schlampigen Programmierstil zu verhindern schafft man nicht konsequent und die Zeiten zu denen es genügte Stati einer Domänenlogik von technischen Return Codes abzutrennen sind vorbei. Dieser Zugang kommt aus der Zeit vor Exceptionhandling.

In C hast du das noch und damit werden Einflüsse dieses Zugangs nicht wirklich verschwinden. Die Länge des Kaiser's Bart erkennt man an den Seiten voller Beiträge in der Regel.


Hallo, der Titel ist ja recht Aussagekräftig

Falls sich jemand hier einklinkt und Antwortet, Danke dafür!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 8 von 10   « Erste     678 910      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz