#nim-lang
#nim-lang
Вопрос:
Я пытаюсь написать оболочку для echo
приведенного ниже кода, не работает, игровая площадка
import sequtils, strutils, sugar proc p*(args: varargs[typed, ` #nim-lang #nim-lang
Вопрос:
Я пытаюсь написать оболочку для
echo
приведенного ниже кода, не работает, игровая площадка ]): void = echo args.map((v) => $v).join(" ")
Ошибка:
/usercode/in.nim(3, 8) Error: invalid type: 'typed' in this context: 'proc (args: varargs[typed])' for proc
Ответ №1:
import sequtils, strutils, sugar proc p*(args: varargs[string, ` #nim-lang #nim-lang
Вопрос:
Я пытаюсь написать оболочку дляecho
приведенного ниже кода, не работает, игровая площадкаimport sequtils, strutils, sugar proc p*(args: varargs[typed, ` #nim-lang #nim-lang
Вопрос:
Я пытаюсь написать оболочку для
echo
приведенного ниже кода, не работает, игровая площадка ]): void = echo args.map((v) => $v).join(" ")Ошибка:
/usercode/in.nim(3, 8) Error: invalid type: 'typed' in this context: 'proc (args: varargs[typed])' for proc
Ответ №1:
]): void =
echo args.join(" ")
varargs
принимает тип для преобразования в качестве первого аргумента, поэтому ваш код почти правильный, но вам нужно заменитьtyped
наstring
, и тогда вызов функции будет эквивалентен вp([$arg1, $arg2])
основном.Пример Nim для
varargs
— link
Комментарии:
1. Вы не упомянули, что
echo
можете принятьvarargs[typed]
, потому что это магия компилятора.2. поскольку преобразование в строку уже выполнено,
varargs[string, $]
вы также можете удалитьmap
.