хм а почему нельзя вернуть массив ?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

хм а почему нельзя вернуть массив ?

Сообщение Attid »

хочу такую функцию, а нельзя.
function ReturnArr: array of variant;

прийдется делать процедуру. создавать переменную . . =)
вопрос чисто из позновательных побуждений.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

ой а все намного хуже чем я думал

Код: Выделить всё

procedure test(var arr: array of variant);
begin
  SetLength(arr);
end;


Код: Выделить всё

Target OS: Win32 for i386
Compiling C:\Temp\project1.lpr
Compiling Unit1.pas
Unit1.pas(16,28) Hint: Parameter "Sender" not used
Unit1.pas(37,17) Error: Wrong number of parameters specified
Unit1.pas(37,17) Error: Illegal expression
Unit1.pas(45) Fatal: There were 2 errors compiling module, stopping


=( почему ?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Код: Выделить всё

type vararr_t = array of variant;
 function ReturnArr: vararr_t;
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

а почему ?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Attid писал(а):а почему ?

Потому, что так написано в хелпах (не помню, толи FPC, толи Delphi) - чтобы вернуть/передать динамический массив его нужно описать отдельным типом - наверное чтобы не было путаницы с открытыми массивами.
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

shade писал(а):наверное чтобы не было путаницы с открытыми массивами

Именно так.
Ответить