Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизТип void в Delphi. Найти похожие ветки
← →
xdragon (2010-04-10 16:54) [0]Предлагаю участникам форума порассуждать на тему типа void в Delphi:
- почему его нет в делфи?
- где его можно использовать?
- резонно ли вводить такой тип вообще?
- что можно предложить в качестве типа void?
(куда ещё порекомендуете запостить такую тему?)
← →
Eraser © (2010-04-10 16:56) [1]есть.
← →
Anatoly Podgoretsky © (2010-04-10 17:15) [2]> xdragon (10.04.2010 16:54:00) [0]
За ненадобностью, костыль не нужен.
← →
Дмитрий Белькевич (2010-04-10 19:18) [3]Предлагаю еще одну тему: почему у автомобилей нет пятого колеса?
← →
test © (2010-04-10 19:21) [4]xdragon (10.04.10 16:54)
смотри Pointer и справку.
← →
test © (2010-04-10 19:22) [5]Дмитрий Белькевич (10.04.10 19:18) [3]
Не правда ваша, есть сам видел, запасное ))
← →
Дмитрий Белькевич (2010-04-10 19:26) [6]
> Не правда ваша, есть сам видел, запасное ))
Тема прижилась :)
← →
@!!ex © (2010-04-10 20:24) [7]> - почему его нет в делфи?
Потому что он искуссвенный. Почему нет предмета типа "пустота"?
Есть аналоги.
> где его можно использовать?
Нигде.
> резонно ли вводить такой тип вообще?
Нет.
> что можно предложить в качестве типа void?
Эм. Для чего? В С++ - это слишком общее ключевое слово обознаюачщее сразу кучу всего: function/procedure, pointer и т.п.
← →
Dimka Maslov © (2010-04-10 20:36) [8]void в сях нужен для того чтобы сделать не него указатель или объявить функцию, не возвращающую значения. А передать в функцию параметр типа void или объявить переменную этого типа нельзя.
← →
boa_kaa © (2010-04-10 20:39) [9]
> @!!ex © (10.04.10 20:24) [7]
> > - почему его нет в делфи?
>
> Потому что он искуссвенный. Почему нет предмета типа "пустота"?
>
void - это не пустота
← →
Anatoly Podgoretsky © (2010-04-10 20:52) [10]> Dimka Maslov (10.04.2010 20:36:08) [8]
Потому что там нет процедур, вот искуственные сущности и выдумывают.
← →
KSergey © (2010-04-10 20:54) [11]> test © (10.04.10 19:21) [4]
> смотри Pointer и справку.
void и void* - сильно разные вещи в Си. Не надо путать.
← →
euru © (2010-04-10 20:54) [12]
> Anatoly Podgoretsky © (10.04.10 17:15) [2]
> За ненадобностью, костыль не нужен.
Из-за отсутствия типа void приходится для понятия "подпрограмма" использовать два слова: procedure и function. Чем не костыль?
> @!!ex © (10.04.10 20:24) [7]
> Потому что он искуссвенный. Почему нет предмета типа "пустота"?
А как же "вакуум", "нуль", "пустое множество"?
← →
Anatoly Podgoretsky © (2010-04-10 21:04) [13]> KSergey (10.04.2010 20:54:11) [11]
А это уже другая условность. Но это суверенное право разработчиков, решили на словах съекономить.
← →
Anatoly Podgoretsky © (2010-04-10 21:05) [14]> euru (10.04.2010 20:54:12) [12]
Линуксоидов ни в чем не убедить, они готовы любые извращения принимать как должное.
← →
jack128_ (2010-04-10 21:13) [15]
> Предлагаю участникам форума порассуждать на тему типа void
> в Delphi:
> - почему его нет в делфи?
Не нужен.
> - где его можно использовать?
Нигде. Подобный может был бы полезен в гибридных функционально-императивных языках. дельфя на такой не тянет.
> - резонно ли вводить такой тип вообще?
Нет.
> - что можно предложить в качестве типа void?
Ничего. тип не нужен.
> Из-за отсутствия типа void приходится для понятия "подпрограмма"
> использовать два слова: procedure и function. Чем не костыль?
>
если ты имеешь в виду void из С/С++ - то это не тип. А просто ключевое слово.
← →
Anatoly Podgoretsky © (2010-04-10 21:24) [16]> jack128_ (10.04.2010 21:13:15) [15]
Ну вот взял и открыл все тайны, особенно что это не тип, на корню ветку убил.
← →
DVM © (2010-04-10 21:29) [17]void это и тип и спецификатор типа и ключевое слово одновременно.
← →
jack128_ (2010-04-10 21:34) [18]
> void это и тип
я могу объявить переменную этого типа??
← →
Кто б сомневался © (2010-04-10 21:34) [19]товарищ видимо не знает, что void переводится с английского как пустота, вакуум, пробел.
void в функциях на С\pp\php и др просто обозначает отстутствие параметров. Если же имеются ввиду void полу-указатели, то в Delphi это обычный Pointer . Никаких преимуществ у него нету.
← →
Правильный$Вася (2010-04-10 21:36) [20]из словаря Мюллера
3. бесполезный, неэффективный
← →
Anatoly Podgoretsky © (2010-04-10 21:43) [21]
> товарищ видимо не знает, что void переводится с английского
> как пустота, вакуум, пробел.
Товарищ видимо хотел нас обидеть, нас сирых.
← →
DVM © (2010-04-10 21:48) [22]
> jack128_ (10.04.10 21:34) [18]
> я могу объявить переменную этого типа??
void* p
так не?
У Бьерна Страуструпа в "Язык программирования С++" глава в книге так и назвается: "Тип void"
← →
jack128_ (2010-04-10 21:52) [23]
> так не?
разве p - это перемнная типа void ??
> У Бьерна Страуструпа в "Язык программирования С++" глава
> в книге так и назвается: "Тип void"
ну значит в сpp понятие типа отличается от того, что принято в других языках..
← →
Dimka Maslov © (2010-04-10 21:52) [24]
> Anatoly Podgoretsky © (10.04.10 20:52) [10]
вообще все языковые фиоритуры суть искусственные сущности.
> я могу объявить переменную этого типа??
объявить можно. прога только не скомпилируется.
← →
Игорь Шевченко © (2010-04-10 22:13) [25]"Then make yourself null and void" (c) Queen, "Death on two legs"
← →
Медвежонок Пятачок © (2010-04-11 00:07) [26]необходимость в войде существует только там, где нет процедур, а только функции.
в паскале есть и функции и процедуры. посему и войд паскалю не нужен.
← →
euru © (2010-04-11 01:56) [27]
> jack128_ (10.04.10 21:13) [15]
> если ты имеешь в виду void из С/С++ - то это не тип. А просто
> ключевое слово.
Я имею в виду понятие void, означающее отсутствие типа. Без этого понятия система типов является неполной. И её приходится компенсировать другими языковыми средствами. В частности, в Паскале для обозначения подпрограмм, возвращающих значение, используется ключевое слово function, а для подпрограмм, невозвращающих значение, - ключевое слово procedure.
← →
Германн © (2010-04-11 02:02) [28]
> И её приходится компенсировать другими языковыми средствами.
Я бы не назвал это компенсацией. Понятия function и procedure всегда в Паскале были самодостаточны и понятны всем интуитивно. Вот только спутало всю интуитивную понятность разрешение в Дельфи вызывать функцию как процедуру.
← →
Юрий Зотов © (2010-04-11 02:15) [29]И снова все как обычно - рассуждаем о том, чего не понимаем. Знаем, но не понимаем. Не догоняем, если угодно.
Нет, воистину - есть Сишники, а есть ссышники. Сорри, но это так.
← →
euru © (2010-04-11 02:19) [30]
> Медвежонок Пятачок © (11.04.10 00:07) [26]
> необходимость в войде существует только там, где нет процедур,
> а только функции.в паскале есть и функции и процедуры.
> посему и войд паскалю не нужен.
Но ведь можно сказать и по-другому.
Необходимость в наличии как процедур, так и функций существует только там, где нет типа void. В Паскале нет типа void, поэтому ему нужны и процедуры, и функции.
Кстати, в Алголе 68, предшественнике Паскаля, тип void был.
← →
Германн © (2010-04-11 02:23) [31]
> Но ведь можно сказать и по-другому.
> Необходимость в наличии как процедур, так и функций существует
> только там, где нет типа void.
Сказать то можно. Но звучит это глупо.
← →
euru © (2010-04-11 02:36) [32]
> Германн © (11.04.10 02:23) [31]
А по-моему, если относиться непредвзято, то оба выражения равнозначны.
← →
Германн © (2010-04-11 02:45) [33]
> euru © (11.04.10 02:36) [32]
>
>
> > Германн © (11.04.10 02:23) [31]
> А по-моему, если относиться непредвзято, то оба выражения
> равнозначны.
>
Нет не равнозначны.
По мне лучше полная однозначность. Либо функция обязательно возвращающая результат, либо процедура. Либо есть у функции/процедуры параметры, либо их нет.
То бишь шаг влево, шаг вправо... :)
← →
Медвежонок Пятачок © (2010-04-11 03:25) [34]Но ведь можно сказать и по-другому.
Необходимость в наличии как процедур, так и функций существует только там, где нет типа void.
Я так понимаю что поднимается тема что круче, си и ли паскаль?
Если да, то я пас.
Я просто сказал, что там где есть процедуры, войд не нужен.
← →
Германн © (2010-04-11 03:28) [35]
> Медвежонок Пятачок © (11.04.10 03:25) [34]
>
> Но ведь можно сказать и по-другому.
> Необходимость в наличии как процедур, так и функций существует
> только там, где нет типа void.
>
> Я так понимаю что поднимается тема что круче, си и ли паскаль?
>
Модераторы "опустят" . Не сомневайся. :)
← →
test © (2010-04-11 06:36) [36]KSergey © (10.04.10 20:54) [11]
void тип
void* указатель на область памяти
Поскольку автор задал вопрос и ждет когда из него будут тисками тащить нормальный вопрос, я предположил что ему нужен указатель.
← →
имя (2010-04-11 08:48) [37]Удалено модератором
← →
Дмитрий С © (2010-04-11 10:39) [38]Почему нельзя было сделать
function Foobar(SomeParam:SomeType);
вместо
begin
end;procedure
?
Из описания и так понятно, что функция ничего не возвращает.
А вот еще:procedure TStream.ReadBuffer(var Buffer; Count: Longint);
Какого типа параметр Buffer ? :-) Только не надо говорить, что Pointer, это ложь.
← →
Игорь Шевченко © (2010-04-11 11:15) [39]Юрий Зотов © (11.04.10 02:15) [29]
Тема наименования ламеров, использующих другие языки, не раскрыта
← →
Anatoly Podgoretsky © (2010-04-11 11:27) [40]
> Дмитрий С © (11.04.10 10:39) [38]
Ознакомься что означает слово функция в математике.
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.065 c