Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nim lang 作废处理与作废处理的区别_Nim Lang - Fatal编程技术网

Nim lang 作废处理与作废处理的区别

Nim lang 作废处理与作废处理的区别,nim-lang,Nim Lang,考虑到以下两个过程: proc firstOne(): void = echo "X" proc secondOne(): void = echo "X" discard 它们之间有什么功能上的区别(如果有的话)?如果它们是相同的,如果void type放弃结果,那么放弃的目的是什么?第二个过程中的放弃是多余的。没有参数的discard只是一个no-op。它通常用于语言语法需要语句但不想执行任何操作的地方(如Python中的pass)。例如,一个空过程: proc d

考虑到以下两个过程:

proc firstOne(): void =
    echo "X"

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

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

第二个过程中的
放弃是多余的。没有参数的
discard
只是一个no-op。它通常用于语言语法需要语句但不想执行任何操作的地方(如Python中的
pass
)。例如,一个空过程:

proc doNothing() =
  discard
您仍然可以添加
discard
,即使在语法上不需要它的地方,因为作为no-op,它什么都不做

这不同于带有参数的
放弃
,该参数的目的是调用函数的副作用并忽略结果