array of String - als Type geht nicht

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Mathias
Beiträge: 6915
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

array of String - als Type geht nicht

Beitrag von Mathias »

Wieso sollte Ausgabe2 inkompatibel sein ?
Ist doch genau dasselbe.

Code: Alles auswählen

procedure Ausgabe1(sa: array of string);
var
  i: integer;
begin
  for i := 0 to Length(sa) - 1 do begin
    WriteLn(sa[i]);
  end;
end;
 
type
  Tsa = array of string;
 
procedure Ausgabe2(sa: Tsa);
var
  i: integer;
begin
  for i := 0 to Length(sa) - 1 do begin
    WriteLn(sa[i]);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Ausgabe1([s1, s2]);
  Ausgabe2([s1, s2]);  // Error: Incompatible type for arg no. 1: Got "Array Of Const/Constant Open Array of Constant String", expected "Tsa"
end;   
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: array of String - als Type geht nicht

Beitrag von Socke »

Das ist nicht dasselbe.

Auf der einen Seite hast du einen dynamischen Array http://www.freepascal.org/docs-html/ref ... 460003.3.1.
Auf der anderen Seite hast du einen open array Parameter http://www.freepascal.org/docs-html/ref ... 700014.4.5.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten