Nim - 函数类型的 int 必须被丢弃

Nim - Function type of int has to be discarded

我是 Nim 的新手,为了好玩写了这个简单的代码:

var x: int = 3
var y: int = 4
if true:
    y = 7

else:
    x = 7

proc hello(xx: int, yy: int, ): int =
    return xx + yy

hello(x, y)

代码看起来不错(我查阅了 Nim 手册),但它给出了这个奇怪的错误:

c:\Users\Xilpex\Desktop\Nim_tests\testrig.nim(12, 6) Error: expression 'hello(x, y)' is of type 'int' and has to be discarded

为什么会出现此错误?我可以做些什么来修复它吗?

我刚刚发现为什么会出现该错误...这是因为该过程返回了一个值,而我没有将该值存储在任何地方。这是工作代码:

var x: int = 3
var y: int = 4
if true:
    y = 7

else:
    x = 7

proc hello(xx: int, yy: int, ): int =
    return xx + yy

var output = hello(x, y)

你收到一个错误,因为声明为 return 值的 procs 意味着要在某处使用该值,因此编译器会提醒你忘记了调用的结果。如果有时你想要结果,而其他时候你想忽略它,而不是创建一个时间变量,你可以使用 the discard statement 或将过程声明为 {.discardable.}.