![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DynArray in procedure
Чародей © (2006-02-18 18:09:00)Как передать в процедуру в качестве параметра динамический массив и получить возможность изменять его размер. В следующем коде ошибка Incompotible types.
procedure TP(a:array of longint);
begin
SetLength(a,2);
end;
Почему?
Джо (2006-02-18 22:10:00) [1]Мое мнение таково, что, прежде чем выражать свои претензии к синтаксису языка, необходимо выучить хотя бы основы этого языка. А то смешно выглядит, ей Богу.
Джо (2006-02-18 22:08:00) [2]> [22] Чародей © (18.02.06 21:49)
> (хотя насчет тавтологии я останусь при своем мнении, можно
> было как-то иначе сделать различия :)
За чем дело стало? Напиши собственный компилятор без указанных недостатков.
Джо (2006-02-18 22:08:00) [3]> [20] Чародей © (18.02.06 21:14)
> Т.е. преимущества зключаются только в возможности использования
> констант. Но ведь это скорее исключение из правил чем правило,
> так как в реальных ситуациях данные в дольшинстве случаев
> получаются динамически.
Нет, опять неправильно понял. Синтаксис позволяет использовать НЕ только константы.
Чародей (2006-02-18 21:49:00) [4]Вобщем смысл понял, всем большое спасибо за помощь.
(хотя насчет тавтологии я останусь при своем мнении, можно было как-то иначе сделать различия :)
McSimm (2006-02-18 21:37:00) [5]Примеров много, например функция Format().
Чародей (2006-02-18 21:14:00) [6]Т.е. преимущества зключаются только в возможности использования констант. Но ведь это скорее исключение из правил чем правило, так как в реальных ситуациях данные в дольшинстве случаев получаются динамически.
Palladin (2006-02-18 21:12:00) [7]соответственно твое высказывание о таВтОлогии является абсолютно некорректным, в рамках форума, который все таки посвящен Delphi, и может направить юные умы в сторону неверного мировозрения применительно к тому же Delphi, о чем и сказал тебе McSimm :)
Palladin (2006-02-18 21:08:00) [8]
> имеет хоть какие-то преимущества
ты не понял еще что ли, для тебя дело не в приемуществе, а в синтаксисе, если ты объявляешь как procedure a(b:array of integer) то b считается open array, а не dynamic array
Джо (2006-02-18 21:02:00) [9]> [16] Джо © (18.02.06 21:01)
Не то объявление скопипастил. Демонстрировал open array, т.е:
procedure TP(a:array of longint);
Джо (2006-02-18 21:01:00) [10]> [14] Чародей © (18.02.06 20:51)
> Покажите хоть один пример где использование открытого массива
> имеет хоть какие-то преимущества, перед использованием там
> же динамического массива
type
TLongArray = array of Longint;
procedure TP(a:TLongArray);
begin
...
end;
...
TP ([10,20,30]);
Palladin (2006-02-18 20:51:00) [11]тогда простой вопрос: в чем оно заключается? отличие?
Чародей (2006-02-18 20:51:00) [12]
> Еще раз и по-русски, пожалуйста.
???
-------
Покажите хоть один пример где использование открытого массива имеет хоть какие-то преимущества, перед использованием там же динамического массива
Джо (2006-02-18 20:44:00) [13]> [12] Чародей © (18.02.06 20:36)
> Прочитал про open array всё что нашел в справке, и отличие
> от dynamic я вроде понял, но не нашел ни одного примера,
> где динамические массивы не могли бы быть использованы,
> по отношению к открытым.
Еще раз и по-русски, пожалуйста.
Чародей (2006-02-18 20:36:00) [14]
> McSimm © (18.02.06 18:43) [11]
> тафталогией
таВтОлогия
Прочитал про open array всё что нашел в справке, и отличие от dynamic я вроде понял, но не нашел ни одного примера, где динамические массивы не могли бы быть использованы, по отношению к открытым.
McSimm (2006-02-18 18:43:00) [15]> [8] Чародей ©
Возможно кому-то и интересно узнать что вы считаете тафталогией и в чем вы не видите смысла. Но все же не стоит писать это здесь - тут люди в основном учатся, вдруг по неопытности подумают, что вы что-то умное написали.
:)
Palladin (2006-02-18 18:42:00) [16]
> И смысла в таких конструкциях не вижу.
тогда почитай справку по open array, думаю после этого увидишь...
Джо (2006-02-18 18:33:00) [17]> [8] Чародей © (18.02.06 18:31)
>
> > type
> > TLongArray = array of Longint;
>
> Я никогда не использовал такие вещи, потому что считаю,
> что это тавтология.
А компилятор считает иначе.
> И смысла в таких конструкциях не вижу.
Меняй работу.
Чародей (2006-02-18 18:31:00) [18]
> type
> TLongArray = array of Longint;
Я никогда не использовал такие вещи, потому что считаю, что это тавтология. И смысла в таких конструкциях не вижу.
Palladin (2006-02-18 18:25:00) [19]
> Джо © (18.02.06 18:18) [4]
ну в принципе да...
> нда массив не катит нам нужен МАССИВ.
можно и такое
type
TLong ARRAY= ARRAYof Longint;
procedure TP(a:TLong ARRAY);
begin
SetLength(a,2);
end;
пойдет?
Джо (2006-02-18 18:21:00) [20]>Чародей ©
> нда массив не катит нам нужен МАССИВ.
?