Discard语句
Example:
proc p(x, y: int): int =
result = x + y
discard p(3, 4) # 丢弃 `p` 的返回值
discard 语句评估其表达式的副作用并将表达式的结果值丢弃,其应在已知忽略此值不会导致问题时使用。
忽略过程的返回值而不使用丢弃语句将是静态错误。
如果调用的 proc/iterator 已使用 discardable “可丢弃”编译指示声明,则可以隐式忽略返回值:
proc p(x, y: int): int {.discardable.} =
result = x + y
p(3, 4) # 当前有效
但是可丢弃编译指示不适用于模板,因为模板会替换掉 AST。 例如:
{.push discardable .}
template example(): string = "https://nim-lang.org"
{.pop.}
example()
此模板将解析为字符串字面值 “https://nim-lang.org“ ,但由于 {.discardable.} 不适用于字面值,编译器会出错。
discard 语句常用于空语句中:
proc classify(s: string) =
case s[0]
of SymChars, '_': echo "an identifier"
of '0'..'9': echo "a number"
else: discard
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .