鉴于以下两个过程:
proc firstOne(): void =
echo "X"
proc secondOne(): void =
echo "X"
discard
Run Code Online (Sandbox Code Playgroud)
它们之间有什么功能差异?如果它们是相同的,如果void类型丢弃结果,丢弃的目的是什么?
所述discard在第二个过程是多余的.discard没有参数的A 只是一个无操作.它通常用于(如pass在Python中)语言语法需要语句,但您不想做任何事情.一个例子是一个空过程:
proc doNothing() =
discard
Run Code Online (Sandbox Code Playgroud)
你discard甚至可以添加它在语法上不必要的地方,因为作为一个no-op它什么都不做.
这discard与参数不同,参数的目的是为其副作用调用函数并忽略结果.