Hallo Gernot,
kann man von einer Funktion mehrere Werte zurückgeben lassen, zum Beispiel ein ganzes Array?
Baggi
Die Arrays werden per Referenz übergeben:
DIM arr[5]
Fill(a[])
FOR i=0 TO BOUNDS(a[], 0)-1
PRINT a[i], 0, i*16
NEXT
FUNCTION Fill: b[]
DIM b[3]
b[0] = 1;
b[2] = 7;
ENDFUNCTION
Wenn die TYPEs mal funktionieren, kann man auch TYPES oder TYPE[] zurückgeben. Aber da ist noch viel Arbeit zu tun.
Aha, ich konnte es noch nicht ausprobieren, aber
...PRINT a[i]...
erzeugt:
1 0 7 0 0
oder?
Ist genau, was ich brauche :).
Nope. Es druckt:
1 0 7
Weil: Ich mach DIM b[3] !! :D
Ich hab den Compiler jetzt so weit, dass er korrekte TYPES compiliert. Problem ist nur, die Fehler, die er ausgibt, wenn was nicht passt sind zum Davonlaufen. Bald aber eine Version mit Types. Dann geht auch:
FUNCTION GiveArray [ ] : a,b,c
LOCAL arr[ ]
DIM arr[3]
arr[0] = a
arr[1] = b
arr[2] = c
RETURN arr[ ]
ENDFUNCTION
Hey cool, danke. :)
Hallo zusammen,
Hätte ein paar Fragen zu Feldern und Funktionen:
Funktioniert das angesprochene Zurückgeben von Feldern ("GiveArray") in der aktuellen Version?
Wie sieht das Ansprechen des Feldes im aufrufenden Programmteil aus ?
Z.B. x=GiveArray(1,2,3)[1] ??
Und, ist es möglich einer Funktion im Aufruf sowohl ein/ mehere Feld(er) zu übergeben, die als Rückgabewert ein Feld liefert?
Grüsse, Tiuz
Hoppla. GiveArray geht nicht. Kompilerfehler. Nichts großes, ich ändere das mal.
Als Argumente kann man immer beliebig viele Felder übergeben:
FUNCTION foo: a[], b[], c[]
Der Rückgabewert der Function ist dabei egal.
Gruß,
-Gernot