我正在尝试使用通用数据类型,其中不需要其中一种类型(图中的边权重).我一直在考虑使用never类型,这看起来像这样:
#![feature(never_type)]
struct Foo<T> {
bar: T
}
impl<T> Foo<T> {
fn foo(&mut self, bar: T) {
self.bar = bar;
}
}
fn main() {
let mut foo: Foo<!> = Foo { bar: "nada" };
foo.foo("nada");
}
Run Code Online (Sandbox Code Playgroud)
这显然"nada"
会导致占位符类型不匹配,但只输入任何内容都会导致其他错误.!
这里使用的是正确的类型,如果是,那么正确的语法是什么?
我已经用它()
代替了它!
,但我有点不确定这是否是正确的类型选择.我相信在效率方面它应该没有区别,因为()
没有内存占用?