我正在使用 Rust 编写一个 N-Gram 库。我希望创建一个“通用”的 n-gram,其中大小在编译时确定(而不是在编码时确定)。一些代码可能会使这更加清晰。
这就是我想要做的:
pub type Ngram<N> = Vec<[String; N]>;
然后要使用它,你只需要做这样的事情:
let vec = Ngram::<5>::new();
那么您将创建一个五元组(或更准确地说,一个 Vec<[String; 5]>
)。这样的事情是否可能?我真的不想做这样的事情:
pub type Ngram<N> = Vec<N>;
...
let vec = Ngram::<[String; 5]>::new();
那将大部分违背创建这种类型的目的。