![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
LexaL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
Подскажите пожалуйста, можно ли создать функцию возвращающую несколько параметров (2 и более)? Если можно, то так это сделать? За примеры, спасибо!
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Можно: создавай свой тип и пиши функцию этого типа.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Galus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.5.2011 Репутация: нет Всего: нет |
Не пробовал, и под рукой нет установленного Delphi, но возможно так:
Функция вернёт массив данных типа стринг, к каждому элементу которого будет добавлен в конец его порядковый номер. |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Функция параметры не возвращает. Функция возвращает результат. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нельзя. Но ты можешь передать переменные, как var параметры, чтобы функция их изменила. Для переменного числа значений, можно передать функции список или динамический массив, чтобы она добавила туда записи. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
можно использовать record, весьма удобно
|
|||
|
||||
LexaL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
Нужно что бы возвращала трехмерный массив и три int переменных. Как в этом случае поступить?
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
в record запихай и массив и три переменных
|
|||
|
||||
LexaL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
Подскажите пожалуйста, как правильно вернуть трехмерный массив. Result:= массив [] ?
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
сделать не функцию а класс
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
а вернуть *ссылку не прокатит?
--------------------
подпись |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Стоит задуматься о проектировании.
Сам подход, когда функция возвращает какие-то сложные структуры или наборы данных - затея вредная для здоровья. Как для здоровья программы, так и для здоровья разработчика, в случае, если он работает не один... Если вам нужно получить трёхмерный массив, то создайте его, отдайте функции для заполнения, получите данные, избавьтесь от массива. Данные должны порождаться и уничтожаться в одном и том же месте. В пределах функции, класса, модуля. В зависимости от зоны видимости. Вариант, когда данные порождаются, например в функции, а потом передаются куда-либо, это не есть хорошо. Из данной ситуации следуют 2 варианта: 1. Данные уничтожаются автоматически, при выходе за границы видимости переменной (например функция вернула указатель, на локальную переменную). Обычная ошибка, ведущая всего лишь к тому, что программа не работает. 2. Данные уничтожаются непонятно где, а скорее всего вообще нигде. Типичная для новичков утечка памяти. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |