如何在 Rust 中导入和引用枚举类型? [英] How do you import and reference enum types in Rust?

查看:47
本文介绍了如何在 Rust 中导入和引用枚举类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从 Rust 标准库导入和引用枚举类型?

How do you import and reference enum types from the Rust std lib?

我正在尝试使用 std::sync::atomics 模块中的 Ordering 枚举.到目前为止,我的尝试都以失败告终:

I'm trying to use the Ordering enum from the std::sync::atomics module. My attempts so far have all ended in failure:

use std::sync::atomics::AtomicBool;
use std::sync::atomics::Ordering;

// error unresolved import: there is no `Relaxed` in `std::sync::atomics::Ordering`
// use std::sync::atomics::Ordering::Relaxed;  

fn main() {
    let mut ab = AtomicBool::new(false);
    let val1 = ab.load(Ordering::Relaxed); // error: unresolved import:
                                           // there is no `Relaxed` in `std::sync::atomics::Ordering`
    println!("{:?}", val1);

    ab.store(true, Ordering.Relaxed);      // error: unresolved name `Ordering`
    let val2 = ab.load(Ordering(Relaxed)); // error: unresolved name `Relaxed`
    println!("{:?}", val2);    
}

我目前使用的是 Rust v. 0.9.

I'm currently using Rust v. 0.9.

推荐答案

编者注:此答案早于 Rust 1.0,不适用于 Rust 1.0.

Editor's note: This answer predates Rust 1.0 and is not applicable for Rust 1.0.

枚举变体不在枚举范围内;因此,它们是 std::sync::atomics::Relaxed, &c.

Enum variants are not scoped inside the enum; they are thus std::sync::atomics::Relaxed, &c.

作用域枚举变体是问题 10090 的主题.

这篇关于如何在 Rust 中导入和引用枚举类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆