Я не могу полностью ответить "почему мы должны называть" void "- это" тип возврата "?
Как доказать, что " void" является типом?
Я не могу полностью ответить "почему мы должны называть" void "- это" тип возврата "?
Как доказать, что " void" является типом?
void
не является типом, он также не является возвращаемым типом:
в JLS 14.8 вы можете найти примечание об этом типе:
Обратите внимание, что язык программирования Java не позволяет "лить в пустоту" - void не тип
Спецификация языка Java говорит, что:
[...] каждая переменная, и каждое выражение имеет тип, который можно определить во время компиляции. Тип может быть примитивным типом или ссылочным типом.
void
не является допустимым типом. Однако void
является допустимым ключевым словом, используемым для указания того, что метод не возвращать значение.
Void JavaDoc также говорит, что void
- это ключевое слово:
Класс Void является неинсталлируемым классом-заполнителем для ссылки на объект класса, представляющий ключевое слово Java void
Сравните это с Целочисленным JavaDoc:
Класс Integer обертывает значение примитивного типа int в объекте. Объект типа Integer содержит одно поле, тип которого является int.
Класс void
представляет ключевое слово void
; в то время как класс Integer
представляет тип int
.
Цитата:
ТИП
публичный статический окончательный класс TYPE
Объект класса, представляющий примитивный Java-тип void.
Взято из: http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Void.html
Или я неправильно понял вопрос?
Надежда класс void объясняет, почему void является типом.
Класс Void - это неинтересный класс-заполнитель для хранения ссылка на объект класса, представляющий ключевое слово void Java.
public final class Void extends Object
Да, void определенно тип, что означает "ничего".
Кстати, вы имеете в виду C (С++, Objective-C,...).
Не могу сказать ни одного языка, но в C (С++, Objective-C,...) void - это тип.
Но это особый тип данных. Вы не можете объявить переменную типа void. Это отличается от других типов.
Но вы можете объявить указатель на пустоту. Функция, возвращающая значение void означает, что функция не имеет возвращаемого значения или ничего не возвращает. Это боится всех случаев, когда можно использовать тип void.
void * v;/** объявляет переменную v как указатель на void */
* v, используемое как левое значение в выражении, может быть присвоено значение любого типа без приведения типов. Вот почему тип void был введен в язык.
Вы обновили свой вопрос, подчеркнув, что вы спрашивали о Java. Java не имеет указателей и функций. Тип void используется в объявлениях методов, возвращающих ничего.
Любой метод класса должен указывать тип возвращаемого значения. Можно указать ключевое слово 'void', указав, что у него нет возвращаемого типа, например:
public void SetPantsSize(int width);
Существует также класс void: http://download.oracle.com/javase/6/docs/api/java/lang/Void.html
Void является типом в большинстве языков и, учитывая типичную систему типов, имеет смысл думать об этом как о типе, который указывает "ничего". Вы не указали свой язык, но, например, в С#, ключевое слово void
соответствует .NET void type.
void
- это тип языка Java (вы можете прочитать это непосредственно в Спецификации языка Java).
Однако тип void
не имеет значений элементов, то есть никакого конкретного значения никогда не будет иметь тип void. void
поэтому используется, чтобы указать, что метод не может вернуть значение при вызове (то есть void
- это тип "нет значения" ).
K & R (2nd Edition) непрерывно ссылается на "тип void", поэтому в C это тип.