Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
В том сообщении Владимир сравнивал два варианта вызова ALINES(array, ...) : 1) array не существует 2) array - существующий массив В моем ответе я отметил, что принципиальной разницы между ними нет - никаких дополнительных усилий и проверок в варианте 2 не требуется, так как в обоих случаях можно сразу же создать пустой массив (как при DIMENSION array[1]), который в дальнейшем и пополнять. ![]() |
Re: Возврат массива из метода | |
---|---|
FaustGreen Сообщений: 145 Дата регистрации: 26.06.2023 |
Обычно, если из функции нужно вернуть несколько полей, я пользуюсь объектом(как писали выше):
Может кто знает: можно ли получить как то контекстную подсказку для такого объекта?:
Исправлено 5 раз(а). Последнее : FaustGreen, 26.11.24 13:57 ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:С объектом на основе базового класса вряд ли получится сделать что-либо путное, ведь заранее неизвестно, что вы туда будете добавлять. А у класса Empty вообще нет ни одного свойства/метода по умолчанию. Ну, а для какого-то своего класса, вы можете заполнить таблицу IntelliSense (foxcode) так, чтобы получать желаемое. А для этого надо изучить систему IntelliSense и научиться работать хотя бы со стандарным IntelliSense Manager'ом Фокса (foxcode.app). ![]() |
Re: Возврат массива из метода | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Не удастся "вернуть" (в фоксе это и не предусмотрено) массив из функции, не определив его снаружи функции. Это вам не ALINE например.
Не прочитал трэд, но все просто с возвратом (или заполнением внешнего массива) 1. PRIVATYE X DIMEN X[1] X[1] = 0 FUNC massiv EXTERNAL ARRAY massiv X[1] = 1 RETURN Вобщем, с возвратом из функции фокс возможно только одно значение (если не считать возможность передачи параметра функции по ссылка - оператор улитка). Значением может быть не только скаляр (козырнуь матфизическим словом), но и обьект. Ребьята, оьбьект!, а в нем - что хочешь наполняй ) 2. LOCAL X DIMEN X[1] X[1] = 0 FUNC massiv LPARAM parX EXTERNAL ARRAY parX parX[1] = 1 RETURN Исправлено 1 раз(а). Последнее : of63, 05.12.24 00:10 ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
Был в теме пример, опровергающий твоё утверждение:
Исправлено 1 раз(а). Последнее : akvvohinc, 05.12.24 00:50 ![]() |
Re: Возврат массива из метода | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Это другое )
когда DO .. WITH параметр, то это передача по указателю! ) Доб. Еще другое: DO ... WITH @параметр тогда будет как в функции - передача значения... Если сейчас понятно слово "по указателю", сишный, ассеблерный термин... Указатель, ссылка... и собственно значение... Да, и важно! Если вы определяете передачу параметра в функцию как "по ссылке" (скромно умолчим, как это делается физически), то вы в фоксовой функции можете менять переменные, переданные в функцию типа a = 1 = функция(@a) ? a && 2 FUNC функция LPARA par1 pat1 = 2 RETURN Исправлено 3 раз(а). Последнее : of63, 05.12.24 01:46 ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
Ты писал о необходимости создать массив перед вызовом функции. Я привел пример, показывающий, что такой необходимости нет. Да, в функцию передается указатель, но не на массив. ![]() |
Re: Возврат массива из метода | |
---|---|
lemenev Автор Сообщений: 229 Дата регистрации: 23.06.2022 |
Олег, прочти самое первое сообщение. Там сказано, что есть возможность возвращать массив из метода через команду RETURN. При этом создаётся новый массив как в ALINE. Ничего снаружи метода определять не нужно. Там приведён пример. Но это работает только для метода внутри класса. ![]() |
Re: Возврат массива из метода | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Серега, ты прав! Достаточно определения снаружи функции только лишь определения, точнее наличия переменной (зарезервировано имя, или память, или что-то там в фоксе) То, что ф-ия может переопределить внешнюю переменную (скаляр), переданную по указателю, в массив - это интересно! ![]() |
Re: Возврат массива из метода | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Михаил, на фразу "только для метода внутри класса" - пытаюсь понять механику ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
Никогда не использую передачу массива в функцию, только через указатели (хороший стиль который позитивно влияет на расход RAM)
Только через указатели:
------------------ Говорить стоит лишь для тех, кто слушает. Исправлено 5 раз(а). Последнее : Vedmak, 14.12.24 00:22 ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
А есть способ передать массив иначе? ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
Зачем? )
------------------ Говорить стоит лишь для тех, кто слушает. Исправлено 1 раз(а). Последнее : Vedmak, 14.12.24 00:27 ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
ты хочеш передать массив в функцию и данные там умрут или из функции должны вернутся данные для последующей обработки ?
------------------ Говорить стоит лишь для тех, кто слушает. ![]() |
Re: Возврат массива из метода | |
---|---|
sphinx Сообщений: 31892 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Не, идея смысла не лишена. Просто многие, как и я, наверное - или параметрами, или объект передать, типа CUSTOM. Без всяких революций. Ну, оболочку а-ля 1С не писал и не собираюсь. Для моих задач не требовалось, но способ интересный. Скажем так, он ушел в хранилище идей. Кому нужно и интересно - воспользуются.
Может и лично не поблагодарят, бывает, что через года потом... Но это неважно. ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
Вижу, у тебя в посте смену фонтов, тебя принуждали ))) расскажи кто... может мы присоеденимся)
------------------ Говорить стоит лишь для тех, кто слушает. ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
Сань ты мой код видел... стиль очевиден )
------------------ Говорить стоит лишь для тех, кто слушает. ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
Для чего мне в функции нужен массив - неважно. Я лишь имел в виду, что не знаю в Фоксе другого способа передать массив в функцию кроме как по ссылке. ![]() |
Re: Возврат массива из метода | |
---|---|
Vedmak Сообщений: 6061 Откуда: CiTY Дата регистрации: 30.10.2003 |
Ты меня не услышал.
------------------ Говорить стоит лишь для тех, кто слушает. ![]() |
Re: Возврат массива из метода | |
---|---|
akvvohinc Сообщений: 4560 Откуда: Москва Дата регистрации: 11.11.2008 |
Думал, что у меня проблемы только со зрением, а оказывается вот оно что!.. ![]() ![]() |
© 2000-2025 Fox Club  |