标识符和关键字

Nim 中的标识符可以是任何字母、数字和下划线组成的字符串,但有以下限制:

  • 字母开头
  • 不允许下划线 _ 结尾
  • 不允许双下划线 __ 结尾。

    1. letter ::= 'A'..'Z' | 'a'..'z' | '\x80'..'\xff'
    2. digit ::= '0'..'9'
    3. IDENTIFIER ::= letter ( ['_'] (letter | digit) )*

目前,任何序数值大于 127 的 Unicode 字符(非 ASCII )都被归类为 letter “字”, 因而可以做为标识符的一部分,但以后的语言版本可能会将一些 Unicode 字符指定为运算符。

以下关键词被保留,不能作为标识符使用:

  1. addr and as asm
  2. bind block break
  3. case cast concept const continue converter
  4. defer discard distinct div do
  5. elif else end enum except export
  6. finally for from func
  7. if import in include interface is isnot iterator
  8. let
  9. macro method mixin mod
  10. nil not notin
  11. object of or out
  12. proc ptr
  13. raise ref return
  14. shl shr static
  15. template try tuple type
  16. using
  17. var
  18. when while
  19. xor
  20. yield

有些关键词是未使用的保留字,提供给语言未来拓展。