返回 void 和 {.noreturn.} 有什么区别?
What's the difference between returning void and {.noreturn.}?
在 Nim 中,noReturn pragma 标记一个从不 returns 的过程。
这与 returns void
的函数有何不同?
返回void
意味着函数return什么都没有:
proc saySomething(): void =
echo "something"
空括号和: void
是可选的:
proc saySomething =
echo "something"
用 noReturn
注释函数意味着该函数根本不会 return:
proc killTheProgram {.noReturn.} =
quit(0)
proc raiseSomething {.noReturn.} =
raise newException(ValueError, "Something")
在 Nim 中,noReturn pragma 标记一个从不 returns 的过程。
这与 returns void
的函数有何不同?
返回void
意味着函数return什么都没有:
proc saySomething(): void =
echo "something"
空括号和: void
是可选的:
proc saySomething =
echo "something"
用 noReturn
注释函数意味着该函数根本不会 return:
proc killTheProgram {.noReturn.} =
quit(0)
proc raiseSomething {.noReturn.} =
raise newException(ValueError, "Something")