为什么我不能在没有大括号的情况下调用 Nim proc?

Why can't I call Nim proc without braces?

Nim 支持不带大括号的 proc 调用表达式,但是当我使用命名参数时它会抱怨,为什么?

proc doc(text: string) {.discardable.} = echo text
doc "doc1"
doc(text = "doc1")
doc text = "doc1" # <== Error here

投诉是 Error: undeclared identifier: 'text',因为您使用未声明的值调用 doc 过程。这有效:

proc doc(text: string) = echo text

let text = "doc1"
doc text

doc text = "doc1" 告诉程序 1) 使用变量 text 作为第一个参数调用过程 doc 和 2) 将“doc1”分配给该过程返回的任何内容。所以你会发现错误 Error: 'doc text' cannot be assigned to.