Исторически в языках, принадлежащих (синтаксически) к семейству C-подобных языков, void указывает, что из функции не возвращается тип.
Точнее, так как переменные имеют (или принадлежат) данный тип , функции также имеют типы.Например, функция, которая возвращает тип int, это функция типа int или функция, тип которой равен int .То же самое, если она возвращает что-то еще.
Если функция ничего не возвращает - она ничего не возвращает - к какому типу она принадлежит?У него нет типа, и тип void представляет такую вещь.
Я не разбираюсь в Цели C, но если я правильно понимаю, nil - это typeless Идентификатор (или идентификатор любого типа), почти как встроенная реализация нулевого шаблона .
И null - это тип (void *), последний является указателем typeless , который может указывать на что угодно, как в C и C ++.
Таким образом, функция, которая возвращает nil, подразумевает, что ее тип является идентификатором любого типа.Не знаю, имеет ли это смысл.Так что тут и сейчас (nil)myFunction
имеет тип, совершенно отличающийся от (void)myFunction
, так как первый имеет один тип (любой тип?), Тогда как последний вообще не имеет типа.
Кроме того, nil являетсявстроенная постоянная.Возврат nill - это все равно, что сказать, что ваша функция возвращает определенное число, например ((1)myFunction
).Это не имеет никакого смысла, не так ли?