鉴于以下两个过程:
proc firstOne(): void =
echo "X"
proc secondOne(): void =
echo "X"
discard
它们之间有什么功能差异?如果它们是相同的,如果void类型丢弃结果,丢弃的目的是什么?
答案 0 :(得分:5)
第二个程序中的discard
是多余的。没有参数的discard
只是一个无操作。它通常用于(如Python中的pass
)语言语法需要一个语句,但你不想做任何事情。一个例子是一个空过程:
proc doNothing() =
discard
即使在语法上没有必要,你仍然可以添加discard
,因为作为一个no-op它没有做任何事情。
这与带有参数的discard
不同,其目的是为其副作用调用函数并忽略结果。