Nim:字符串常量前感叹号的含义

Nim: Meaning of exclamation mark before a string constant

阅读宏文档 (http://nim-lang.org/docs/macros.html),我遇到了这段代码:

nnkIdent(!"echo")

我试图找出感叹号的含义,但在 Nim 文档中找不到任何内容。

那么:Nim 中 "string"!"string" 有什么区别?

本文中的感叹号是创建标识符的宏语法。 Here是定义:

proc `!`(s: string): NimIdent {.magic: "StrToIdent", noSideEffect.}

从字符串 s 构造一个标识符