我可以给一个结构体设置别名,如下所示:
struct DummyStruct {}
use DummyStruct as MyStruct;
但是当涉及到模板化结构时:
struct TemplatedStruct<T> {
v: T
}
use TemplatedStruct::<i32> as AnotherStruct;
我得到错误:
8 | use TemplatedStruct::<i32> as AnotherStruct;
| ^ expected identifier
我如何修复它以作为模板化结构体的别名?
2条答案
按热度按时间wdebmtf21#
use
不创建别名,它导入,当与as
一起使用时,重命名导入。要创建类型别名,请使用
type
。请注意,
TemplatedStruct
是一个泛型结构。Rust不使用术语“模板”。67up9zun2#
当您在
use
声明中使用as
时,严格地说,这不是类型别名-而是您只是使用另一个名称导入项。实际的类型别名如下所示:
您可以在此处指定泛型:
参见: