可变参数
varargs 参数像开放数组形参。 它也表示实现传递数量可变的实参给过程。 编译器将实参列表自动转换为数组:
- proc myWriteln(f: File, a: varargs[string]) =
- for s in items(a):
- write(f, s)
- write(f, "\n")
- myWriteln(stdout, "abc", "def", "xyz")
- # 编译器转为:
- myWriteln(stdout, ["abc", "def", "xyz"])
转换只在可变形参是过程头部的最后一个形参时完成。它也可以在这个情景执行类型转换:
- proc myWriteln(f: File, a: varargs[string, `$`]) =
- for s in items(a):
- write(f, s)
- write(f, "\n")
- myWriteln(stdout, 123, "abc", 4.0)
- # 编译器转为:
- myWriteln(stdout, [$123, $"abc", $4.0])