必须将 Nim 函数默认参数作为可变变量
Must have Nim function default argument as a mutable variable
我们如何让 Nim 函数默认 parameter/argument 用于可变 ( r/w ) 参数最简单,即通常是布尔值?例如插图:
proc foo( m:int; n :var int) = # <- how the correct one
if n :
echo 7+m+n
else :
echo m
foo 7 # <- as it's demanded
在这种情况下,您想使用函数重载而不是默认参数。如果您使用文字作为默认 var 参数的值,则不清楚如果您尝试更改它会发生什么。
proc foo(m: int) =
echo m
proc foo(m: int, n: var int) =
echo 7 + m + n
foo(7) # prints 7
var n = 3
foo(7, n) # prints 17
我们如何让 Nim 函数默认 parameter/argument 用于可变 ( r/w ) 参数最简单,即通常是布尔值?例如插图:
proc foo( m:int; n :var int) = # <- how the correct one
if n :
echo 7+m+n
else :
echo m
foo 7 # <- as it's demanded
在这种情况下,您想使用函数重载而不是默认参数。如果您使用文字作为默认 var 参数的值,则不清楚如果您尝试更改它会发生什么。
proc foo(m: int) =
echo m
proc foo(m: int, n: var int) =
echo 7 + m + n
foo(7) # prints 7
var n = 3
foo(7, n) # prints 17