void proc 和 void proc with discard 的区别

Difference between void proc and void proc with discard

给定以下两个过程:

proc firstOne(): void =
    echo "X"

proc secondOne(): void =
    echo "X"
    discard

它们之间有什么功能上的区别(如果有的话)?而如果相同的话,discard if void type 丢弃结果的目的是什么?

第二个过程中的discard是多余的。没有参数的 discard 只是空操作。它通常用于(如 Python 中的 pass)语言语法需要语句但您不想做任何事情的地方。一个例子是一个空过程:

proc doNothing() =
  discard

您仍然可以添加 discard,即使它在语法上不是必要的,因为作为空操作它不会做任何事情。

这与带有参数的 discard 不同,后者的目的是调用函数的副作用并忽略结果。