Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Тип 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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.049 c
6-1224492803
Поросенок Винни-Пух
2008-10-20 12:53
2010.08.27
gprs modem + sms


15-1266013815
Юрий
2010-02-13 01:30
2010.08.27
С днем рождения ! 13 февраля 2010 суббота


2-1273056659
Свободный художник
2010-05-05 14:50
2010.08.27
Заблокировать ввод в определенные ячейки StringGrid


3-1235071724
DmitryG.
2009-02-19 22:28
2010.08.27
Пробемы с ADO


15-1269604734
Кто б сомневался
2010-03-26 14:58
2010.08.27
Ускорение загрузки сайтов в 5 - 8 раз в Opera