gpt4 book ai didi

rust - 如何将枚举引用转换为数字?

转载 作者:行者123 更新时间:2023-11-29 07:41:17 27 4
gpt4 key购买 nike

我有一个枚举:

enum Foo {
Bar = 1,
}

如何将对此枚举的引用转换为用于数学的整数?

fn f(foo: &Foo) {
let f = foo as u8; // error[E0606]: casting `&Foo` as `u8` is invalid
let f = foo as &u8; // error[E0605]: non-primitive cast: `&Foo` as `&u8`
let f = *foo as u8; // error[E0507]: cannot move out of borrowed content
}

最佳答案

*foo as u8 是正确的,但您必须实现 Copy,否则您会留下无效的引用。

#[derive(Copy, Clone)]
enum Foo {
Bar = 1,
}

fn f(foo: &Foo) -> u8 {
*foo as u8
}

由于您的枚举将是一个非常轻量级的对象,您无论如何都应该按值传递它,为此您还需要Copy

关于rust - 如何将枚举引用转换为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com