我可以为一个结构添加别名,如下所示:
struct DummyStruct {}
use DummyStruct as MyStruct;
Run Code Online (Sandbox Code Playgroud)
但是当涉及到模板化结构时:
struct TemplatedStruct<T> {
v: T
}
use TemplatedStruct::<i32> as AnotherStruct;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
8 | use TemplatedStruct::<i32> as AnotherStruct;
| ^ expected identifier
Run Code Online (Sandbox Code Playgroud)
如何修复它以给模板化结构起别名?
use不创建别名,它会导入,并且与 一起使用时as,会重命名导入。
要创建类型别名,请使用type.
type AnotherStruct = TemplatedStruct<i32>;
Run Code Online (Sandbox Code Playgroud)
请注意,这TemplatedStruct是一个通用结构。Rust 不使用术语“模板”。