Почему я не могу вызвать Nim proc без фигурных скобок?

Nim поддерживает выражение вызова процедуры без фигурных скобок, но когда я использую именованные аргументы, он жалуется, почему?

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

2 ответа

Решение

Жалоба Error: undeclared identifier: 'text', потому что вы звоните docproc со значением, которое не объявлено. Это работает:

proc doc(text: string) = echo text

let text = "doc1"
doc text

Линия doc text = "doc1" сообщает программе: 1) вызвать процедуру doc с переменной textв качестве первого аргумента и 2) присвоить "doc1" тому, что возвращает эта процедура. Итак, вы найдете ошибкуError: 'doc text' cannot be assigned to.

      proc doc(text: string = "") = echo text
doc text = "hello world"
Другие вопросы по тегам