В чем разница между возвратом void и {.noreturn.}?
В Nim прагма noReturn отмечает процесс, который никогда не возвращается.
Чем это отличается от функции, которая возвращает void
?
1 ответ
Решение
Возврате void
означает, что функция ничего не возвращает:
proc saySomething(): void =
echo "something"
Пустые скобки, а также : void
являются необязательными:
proc saySomething =
echo "something"
Аннотирование функции с noReturn
означает, что функция вообще не вернется:
proc killTheProgram {.noReturn.} =
quit(0)
proc raiseSomething {.noReturn.} =
raise newException(ValueError, "Something")