Funkcja zwracająca wielowymiarową tablicę dynamiczną

0

mam taki kod:

type T2DArray = array of array of string;

function getFieldsAsArray(): T2DArray;
var DArray: array of array of string;

begin
        SetLength(DArray, 1, 3);
        DArray[0,0]:='Jacek';
        DArray[0,1]:='Placek';
        DArray[0,2]:='Pankracek';
        result := DArray;
end;

Wywala to błąd pt. 'Incompatybile types: 'T2DArray' and 'Dynamic array'

Czemu? :(

1
var
darray:T2Array;

Tak też będzie działać.

Dlaczego Ci nie działa?
Bo array zawsze się różni od innego arraya, nie ważne czy są takie same. Dla kompilatora to jest co innego - on się nie męczy w dokładne porównywanie.
Tak samo jest z rekordami, obiektami, klasami itd. (ale w przypadku klas i obiektów jest dziedziczenie).

0

za bardzo kombinujesz

type T2DArray = array of array of string;
 
function getFieldsAsArray(): T2DArray;
begin
        SetLength(Result, 1, 3);
        Result[0,0]:='Jacek';
        Result[0,1]:='Placek';
        Result[0,2]:='Pankracek';
end;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.