return утверждения (return statements)
Утверждение "return" в функции F завершает выполнение F и, необязательно, предоставляет одно или несколько значений результата. Любые функции, отложенные на F (defer функции), выполняются до того, как F вернется к своему вызывающему.
В функции без типа результата утверждение "return" не должно указывать какие-либо значения результата.
Есть три способа вернуть значения из функции с типом результата:
1. Возвращаемое значение или значения могут быть явно указаны в утверждении "return". Каждое выражение должно быть однозначным и присваиваться соответствующему элементу типа результата функции.
2. Список выражений в утверждении "return" может быть одним вызовом многозначной функции. Эффект такой, как если бы каждое значение, возвращаемое из этой функции, было присвоено временной переменной с типом соответствующего значения, за которым следует утверждение "return", перечисляющее эти переменные, после чего применяются правила предыдущего случая.
3. Список выражений может быть пустым, если тип результата функции указывает имена для ее параметров результата. Результирующие параметры действуют как обычные локальные переменные, и функция может присваивать им значения по мере необходимости. Утверждение "return" возвращает значения этих переменных.
Независимо от того, как они объявлены, все значения результата инициализируются нулевыми значениями для их типа при входе в функцию. Утверждение "return", которое указывает результаты, устанавливает параметры результата перед выполнением любых отложенных функций (deferred functions).
Ограничение реализации: компилятор может запретить пустой список выражений в утверждении "return", если на месте возврата находится другая сущность (константа, тип или переменная) с тем же именем, что и у параметра результата.
Last updated
Was this helpful?