返回void和{.noreturn.}之间有什么区别?

dgo*_*o.a 4 pragma nim-lang

在Nim中,noReturn编译指示标记了一个永不返回的过程.

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

def*_*ef- 6

返回void意味着函数不返回任何内容:

proc saySomething(): void =
  echo "something"
Run Code Online (Sandbox Code Playgroud)

空括号以及: void可选:

proc saySomething =
  echo "something"
Run Code Online (Sandbox Code Playgroud)

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

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

proc raiseSomething {.noReturn.} =
  raise newException(ValueError, "Something")
Run Code Online (Sandbox Code Playgroud)