Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Aus "Result" lesen (https://www.delphipraxis.net/53574-aus-result-lesen.html)

SebE 19. Sep 2005 13:26


Aus "Result" lesen
 
Hallo,
heute hat mein Lehrer gemeint, dass man das:

Delphi-Quellcode:
function X: Typ;
begin
Result := 7;

...

if Result = 7 //Darf man hier aus Result lesen?
then ...
end;
nich machen sollte.

Warum nicht?

Und wenn es verboten wäre, wieso meldet es der Compiler nicht?

Danke für Informationen.

marabu 19. Sep 2005 13:31

Re: Aus "Result" lesen
 
Hi Sebastian,

sei einfach etwas aufmüpfig und mache es doch. Natürlich nur, wenn dein Lehrer wegschaut...

Grüße vom marabu

SebE 19. Sep 2005 13:32

Re: Aus "Result" lesen
 
ja, so wird's wahrscheinlich ausgehen.
Aber ich würde gern wissen, ob es dafür einen Grund gibt.

Kroko1999 19. Sep 2005 13:34

Re: Aus "Result" lesen
 
Ich sehe keine Grund auf Result zuzugreifen, frage ihn doch mal warum :?:

marabu 19. Sep 2005 13:35

Re: Aus "Result" lesen
 
@Sebastian: Nicht wirklich. Da das Knausern mit Hauptspeicher heutzutage eine veraltete Tugend ist, wird der Lehrer vielleicht aus didaktischen Gründen Wert darauf legen, dass du grundsätzlich sprechende Namen für deine Variablen verwenden sollst.

marabu

leddl 19. Sep 2005 13:35

Re: Aus "Result" lesen
 
Ich denke, das Problem ergibt sich bei Betrachtung anderer Programmiersprachen. Schlagt mich, wenn ich falsch liege, aber soweit ich mich erinnere, erfolgt bei zB PHP bei Aufruf von
Code:
return a;
(was ja in gewisser Hinsicht dem Delphi-Return entspricht) ein verlassen der Funktion.

In Delphi kannst du aber guten Gewissens bereits am Anfang der Funktion dem Result etwas zuweisen. Das wird sogar sehr häufig verwendet. Nicht zuletzt, um nicht extra eine neue Variabel deklarieren und zuweisen zu müssen.

shmia 19. Sep 2005 14:01

Re: Aus "Result" lesen
 
Es ist nicht verboten.
Man sollte nur versuchen, das Result so spät als möglich zuzuweisen.
Grund: bei frühzeitiger Zuweisung an Result wird ein wertvolles Prozessorregister für andere Aufgaben blockiert.
Delphi-Quellcode:
// Beispiel
Result := False;
a := ...
b := ...
if a > b then
  Result := True;

// besser
a := ...
b := ...
if a > b then
  Result := True
else
  Result := False;

DerDan 19. Sep 2005 14:22

Re: Aus "Result" lesen
 
Tatsächlich hat Borland die "automatische " Variable Result auch dazu eingefügt damit man darauf zugreifen kann. Also sollt mans auch machen.

In anderen Sprachen gibts sowas leider nicht. das könnte der einzige Grund für eine Lehrkraft (-h+e) sein um so eine Aussage zu fällen. Aber dann soll er den Grund auch nennen.


DerDan

leddl 19. Sep 2005 14:31

Re: Aus "Result" lesen
 
Also ich finde das mit Result in vielen Fällen sehr praktisch.
Delphi-Quellcode:
function IndexOf(a : Array of String; str : String) : Integer;
Begin
  Result := high(a);
  While (Result >= low(a)) and (a[Result] <> str) Do
    dec(Result);
End;
Wozu sollte ich hier jetzt noch extra eine Zählvariable einführen? Geht doch so viel schneller, einfacher und meiner Meinung nach auch eindeutiger.

//Edit:
Am besten du fragst deinen Lehrer mal nach dem Grund für seine Aussage. Ich gehe mal wirklich davon aus, daß es mit anderen Programmiersprachen zu tun hat. Und dann sag ihm, daß es in Delphi sehr wohl geht und auch seine praktische Anwendung haben kann.

Robert_G 19. Sep 2005 14:36

Re: Aus "Result" lesen
 
Kann es sein, dass ihr mit Absicht Shmias Beitrag ignoriert oder kapiert ihr ihn nur nicht? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz