Auto类型

auto 类型只能用作返回类型和参数。对于返回类型,它会使编译器从例程主体推断类型:

  1. proc returnsInt(): auto = 1984

对于参数,它当前创建隐式泛型例程:

  1. proc foo(a, b: auto) = discard

和下面一样:

  1. proc foo[T1, T2](a: T1, b: T2) = discard

但是,语言的后续版本可能会将其更改为”从主体推断参数类型”。 从而上面的 foo 将会被拒绝,因为无法从一个空的 discard 语句中推断出参数的类型。