返回void和{.noreturn。}之间的区别是什么?

时间:2017-09-08 00:08:26

标签: pragma nim

在Nim中,noReturn pragma标记了一个永不返回的过程。

与返回void的函数有什么不同?

1 个答案:

答案 0 :(得分:6)

返回void表示该函数不返回任何内容:

proc saySomething(): void =
  echo "something"

空括号和: void是可选的:

proc saySomething =
  echo "something"

使用noReturn注释函数意味着该函数根本不会返回:

proc killTheProgram {.noReturn.} =
  quit(0)

proc raiseSomething {.noReturn.} =
  raise newException(ValueError, "Something")