如何在 Nim 中编写类似于“echo”的函数?

Ale*_*hin 3 nim-lang

我正在尝试为echo下面的代码编写包装器不起作用,操场

import sequtils, strutils, sugar

proc p*(args: varargs[typed, `$`]): void =
  echo args.map((v) => $v).join(" ")
Run Code Online (Sandbox Code Playgroud)

错误:

/usercode/in.nim(3, 8) Error: invalid type: 'typed' in this context: 'proc (args: varargs[typed])' for proc
Run Code Online (Sandbox Code Playgroud)

Kam*_*nji 10

import sequtils, strutils, sugar

proc p*(args: varargs[string, `$`]): void =
  echo args.join(" ")
Run Code Online (Sandbox Code Playgroud)

varargs接受类型转换为作为第一个参数,所以你的代码几乎是正确的,但你需要更换typedstring,然后函数调用将相当于p([$arg1, $arg2])基本。

Nim 示例varargs-链接

  • 由于到字符串的转换已经由“varargs[string, $]”完成,您也可以删除“map”。 (2认同)