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.}
.
我是 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.}
.