Struct 如何返回选项<;\_&燃气轮机;从结构上的getter方法?

Struct 如何返回选项<;\_&燃气轮机;从结构上的getter方法?,struct,rust,option,Struct,Rust,Option,我已将泛型应用于结构,并希望使用在结构上实现的getter方法在选项类型中获取其输出 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() { le

我已将泛型应用于结构,并希望使用在结构上实现的getter方法在
选项
类型中获取其输出

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());
}
结构点{
x:T,
y:U,
}
内点{
fn x(&self)->选项{
设z=&self.x;
z、 获得(5);
}
}
fn main(){
设p=点{x:5,y:10.0};
println!(“p.x={},p.x());
}
()

上述代码的输出为

error[E0107]:类型参数数量错误:应为1,找到2
-->src/main.rs:6:30
|
6 | fn x(&self)->选项{
|^意外的类型参数

花点时间阅读您正在使用的类型的文档。只有一种通用类型:

pub enum Option<T> {
    None,
    Some(T),
}
或许:

fn x(&self)->other::other{
未执行!()
}
另见:


您的代码存在许多问题,这些问题将阻止其编译:

  • 在不执行某种复制/克隆的情况下,您不能在采用
    &self
    的方法中返回拥有的
    T
    U
    类型
  • 如果没有某种特征边界,则无法对泛型类型调用方法(
    get
    )。该方法似乎还没有定义
  • 不能使用
    显示
    格式化程序格式化元组

选项
只接受一个类型参数,所以当您使用
选项
时,您想要什么?您想要打印输出说什么?我不明白您想要
p.x()的结果是什么
未来。我想他实际上想要
或者
@JohnKugelman确实!因为
get
没有定义,所以更难猜测。@Shepmaster有没有名为get()的方法在《铁锈前奏曲》中?@FawadAhmed你可以看到和的内容。也就是说,你写了这段代码,所以你不应该知道
get
应该是什么吗?@Shepmaster这就是我所困惑的。谢谢你纠正我。
fn x(&self) -> Option<(T, U)> {
    unimplemented!()
}
fn x(&self) -> Result<T, U> {
    unimplemented!()
}
fn x(&self) -> either::Either<T, U> {
    unimplemented!()
}