如何从结构上的getter方法返回Option ? [关闭]

问题描述 投票:-1回答:1

我已将泛型应用于结构,并希望使用在该结构上实现的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
struct rust option
1个回答
1
投票

花时间阅读所用类型的文档。 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!()
}

另请参见:


您的代码有很多问题,将使其无法编译:

© www.soinside.com 2019 - 2024. All rights reserved.