Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1266738974
tonick2001
2010-02-21 10:56
2010.08.27
Выдернуть из переменной TStringList нужну строку


15-1266830272
Игорь
2010-02-22 12:17
2010.08.27
Все что НЕ нужно начинающему программисту


11-1222411588
skoro
2008-09-26 10:46
2010.08.27
Editbox и Backspace на смартфоне


2-1273340393
User
2010-05-08 21:39
2010.08.27
Edit - поддержка символов


15-1267312427
Когда-то_был_тут
2010-02-28 02:13
2010.08.27
Напомните писателя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский