我是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
为什么会出现此错误?有什么我可以解决的吗?
答案 0 :(得分:1)
您会收到一条错误消息,因为声明为返回值的proc旨在在某个地方使用该值,因此编译器会提醒您您忘记了调用结果。如果有时候您想要结果,而另一些时候您想要忽略它,则可以使用the discard statement或将proc声明为{.discardable.}
来代替创建时间变量。
答案 1 :(得分:0)
我刚刚发现了为什么会收到该错误...这是因为该过程返回了一个值,而我并没有将该值存储在任何地方。这是工作代码:
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)