Jump to content

Recommended Posts

Geschrieben

Moin, in der API -Dokumentation fand ich folgendes :

API

 

Da Delphi nicht mehrere Rückgabewerte direkt unterstützt, wird das out Schlüsselwort genutzt um mehrere Werte von einer Funktion zurückzugeben.

 

Das stimmt so nicht ganz :

function GibWasZurück (StringA : String; var IntegerA : Integer) : String;

Parameter, die mit var angegeben werden, werden nach Funktionsaufruf an den Aufrufer zurückgegeben. Somit können mehrere Parameter angegeben werden.

 

alternativ :

type
  TStringAndIntFloat = Record
    RetString : String;
    RetInteger : Integer;
    RetFloat : Real;
  end;


function Test: TStringAndIntFloat;
begin
  Result.RetString := 'Test';
  Result.RetInteger := 123;
  Result.RetFloat := 12.4578;
end;

Geschrieben

@ tfRookie :

... war eigentlich nur als "Ergänzung" gedacht, denn die obige Aussage ist

evt. für Neulinge in Delphi etwas irreführend / unglücklich gewählt.

Nebenbei unterscheide ich nicht zwischen direkter und indirekter Unterstützung

von Eigenschaften / Funktionen --> ist aber nur meine eigene Meinung.  ;)

Geschrieben

var gilt als Referenz, d.h. Methode kann mit dem Input arbeiten und das Ergebnis zurückliefern, bei out interessiert den Compiler ein Übergabewert nicht, sondern nur der Rückgabewert ist relevant.

 

Das keine Records verwendet werden, hat u.a. mit der Code-Generation der Bindings zutun. Die Record-Typen sind nicht über alle Sprachen gleich bzw. vorhanden.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...