AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

x+=y ?

Ein Thema von BloodySmartie · begonnen am 14. Feb 2008 · letzter Beitrag vom 14. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
BloodySmartie
(Gast)

n/a Beiträge
 
#1

x+=y ?

  Alt 14. Feb 2008, 16:17
Liebe Community!

In meinem aktuellen Projekt habe ich unheimlich viele Aufrufe in der Form
Delphi-Quellcode:
x:=x+i*o;
//oder
x:=x*pow(z,2);
zu schreiben. In C-verwandten Sprachen geht sowas etwas schneller:
Code:
x+=i*o;
//oder
x*=pow(z,2);
Ich habe mir nun folgende kleine Funktion geschrieben, die mir ein wenig Getippe im Umgang mit Integern abnimmt:
Delphi-Quellcode:
//add
procedure a(var x:integer;y:integer);
begin
x:=x+y;
end;
Kann man das in Delphi vielleicht auch eleganter lösen? Gibts in der Sprache irgendwelche Entsprechungen zu den praktischen C-Operatoren?

[edit=SirThornberry]Delphi-Tags durch c-Tags ersetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: x+=y ?

  Alt 14. Feb 2008, 16:19
Inc und Dec erfüllen denselben Zweck.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: x+=y ?

  Alt 14. Feb 2008, 16:20
bei + und - ginge wohl:

Inc(x, y);

bezw:

Dec(x, y);

ansonsten ist ausschreiben wohl kürzer und performanter als eine funktion

greetz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: x+=y ?

  Alt 14. Feb 2008, 16:24
Diese "Kurzschreibweisen" sorgen für schlechtere Lesbarkeit. Sowas ist in Delphi nicht möglich. Mit dem Präprozessor von jbg wäre es prinzipiell möglich solche Konstrukte abzubilden.
Markus Kinzler
  Mit Zitat antworten Zitat
BloodySmartie
(Gast)

n/a Beiträge
 
#5

Re: x+=y ?

  Alt 14. Feb 2008, 16:28
Ich finde durchaus nicht, dass diese Operatoren zu schlechterer Lesbarkeit führen - im Gegenteil. Ich vermute aber mal, dass das Geschmackssache ist.
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: x+=y ?

  Alt 14. Feb 2008, 16:34
In Delphi2007 kann man für eigene Datentypen Operatoren überladen (operator overloading).
http://www.delphi-treff.de/sprachen/...al/operatoren/ unten
Damit könnte man sowas (bööhhse) tricksen, indem man Operatoren überläd, die man in ihrer ursprünglichen Form nicht braucht (ShiftLeft oder sowas)...

EDIT: Das Beispiel war für .NET, sehe ich gerade. Geht aber auch für records - Stichwort "class operator"
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
BloodySmartie
(Gast)

n/a Beiträge
 
#7

Re: x+=y ?

  Alt 14. Feb 2008, 16:42
Cooooooool!! Danke für den Tipp!
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#8

Re: x+=y ?

  Alt 14. Feb 2008, 17:32
Ich würde davon abraten, sowas hinzutricksen. Ich kann zwar nachvollziehen, dass dir das +=, etc. fehlt, aber die ganzen Tricksereien(abgesehen von Inc bzw. Dec) sind einfach nur unschön und machen den Code nicht gerade leserlicher...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: x+=y ?

  Alt 14. Feb 2008, 17:40
Hi,

FPC hat eine Option für sowas.

Ansonsten inc und dec und, z. B. für Multiplikation, könntest du dir selber was bauen wie du es oben vorgeschlagen hast, ohne viel Performance einzubüßen, indem du inline verwendest.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: x+=y ?

  Alt 14. Feb 2008, 23:24
Zitat von bluesbear:
In Delphi2007 kann man für eigene Datentypen Operatoren überladen (operator overloading).
http://www.delphi-treff.de/sprachen/...al/operatoren/ unten
Damit könnte man sowas (bööhhse) tricksen, indem man Operatoren überläd, die man in ihrer ursprünglichen Form nicht braucht (ShiftLeft oder sowas)...

EDIT: Das Beispiel war für .NET, sehe ich gerade. Geht aber auch für records - Stichwort "class operator"
geht übrigens ab D2006. ob += etc. pp. unterstützt werden? einfach mal in die OH gucken
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:15 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