我已将泛型应用于结构,并希望使用在该结构上实现的getter方法以Option<_, _>
类型获取其输出。
struct Point<T, U> {
x: T,
y: U,
}
impl<T, U> Point<T, U> {
fn x(&self) -> Option<T, U> {
let z = &self.x;
z.get(5);
}
}
fn main() {
let p = Point { x: 5, y: 10.0 };
println!("p.x = {}", p.x());
}
([Playground)
上述代码的输出为
error[E0107]: wrong number of type arguments: expected 1, found 2
--> src/main.rs:6:30
|
6 | fn x(&self) -> Option<T, U> {
| ^ unexpected type argument
花时间阅读所用类型的文档。 Option
只有一种通用类型:
Option
作为有根据的猜测,您可能打算使用pub enum Option<T> {
None,
Some(T),
}
:
tuple
其他可能性是fn x(&self) -> Option<(T, U)> {
unimplemented!()
}
:
Result
或者也许是Result
:
fn x(&self) -> Result<T, U> {
unimplemented!()
}
另请参见:
Either
Either
您的代码有很多问题,将使其无法编译:
fn x(&self) -> either::Either<T, U> {
unimplemented!()
}
的方法返回拥有的fn foo() -> Result<()> throws "expected 2 type arguments"或Wrong number of type arguments: expected 1 but found 0类型。T
)。该方法甚至似乎都没有定义。U
格式化程序格式化元组。