Discard表达式

示例:

  1. proc p(x, y: int): int =
  2. result = x + y
  3.  
  4. discard p(3, 4) # 丢弃 `p` 的返回值

discard 语句评估其副作用的表达式,并丢弃表达式的结果。

在不使用discard语句的情况下忽略过程的返回值是一个静态错误。

如果使用 discardable 编译指示声明了被调用的proc或iterator,则可以隐式忽略返回值:

  1. proc p(x, y: int): int {.discardable.} =
  2. result = x + y
  3.  
  4. p(3, 4) # now valid

discard 语句通常用作null语句:

  1. proc classify(s: string) =
  2. case s[0]
  3. of SymChars, '_': echo "an identifier"
  4. of '0'..'9': echo "a number"
  5. else: discard