相关疑难解决方法(0)

有些和无,它们是什么?

在编写一些试图习惯Rust的小型初级练习时,我遇到了一些我不懂的输出Vec::get.这是代码:

fn main() {
    let command = [('G', 'H'), ('H', '5')];

    for i in 0..3 {
        print!(" {} ", i);
        println!("{:?}", command.get(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是

0 Some(('G', 'H'))
1 Some(('H', '5'))
2 None
Run Code Online (Sandbox Code Playgroud)

我在Haskell涉足面前,我的意思是看了教程网站10分钟,跑回C++,但我记得读的东西SomeNoneHaskell的.我很惊讶在Rust看到这个.有人可以解释为什么.get()返回SomeNone

rust

38
推荐指数
4
解决办法
1万
查看次数

Rust 中的 Some 和 Option 有什么区别?

他们是一样的吗?我有时可以看到文档使用它们,就好像它们是平等的一样。

types optional rust

5
推荐指数
2
解决办法
956
查看次数

2
推荐指数
1
解决办法
113
查看次数

如何在任何范围内访问“Option”中的“Some”和“None”?

是否有一些编译器内置功能正在运行,或者是否有可能实现您自己的枚举及其可仅通过 Rust 代码全局访问的变体?如果是,怎么办?

编辑:抱歉,如果我不清楚。我的问题是关于SomeNone,而不是Option。例如:

enum MyOption<T> {
    MySome(T),
    MyNone,
}

impl<T> MyOption<T> {
    fn is_some(&self) -> bool {
        match self {
            Self::MySome(_) => true,
            Self::MyNone => false,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

即使从“内部”,我也必须告诉编译器在Self. 那么有没有一种方法可以做到这一点,Option并让我的MySome和从我写的任何地方MyNone链接到它们?MyOption

rust

2
推荐指数
1
解决办法
500
查看次数

标签 统计

rust ×4

optional ×1

types ×1