gpt4 book ai didi

rust - 有没有更简洁的方法来使用枚举,尤其是当它只有原始类型时?

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

我在 Rust 中使用枚举来实现多态性。我需要一个可以包含整数或浮点值的向量:

enum Value {
Float(f32),
Int(i32),
}

let vec = Vec::<Value>::new();
vec.push(Value::Int(0));
vec.push(Value::Float(1.0));

有没有更简洁的方法来做到这一点,尤其是当您只使用原始类型时?

最佳答案

不,没有。

减少代码量有技巧:

  1. 无需指定向量的类型。
  2. 您可以一次构建所有向量。
  3. 您可以导入枚举变体。
fn main() {
use Value::*;
let vec = vec![Int(0), Float(1.0)];
}

it mostly feels strange that I'm effectively just renaming the primitive types

那只是您程序的产物。例如,您的枚举与此枚举之间的计算机没有真正的区别:

enum MagicSpell {
Multiplier(f32),
NumberOfStomachs(i32),
}

但是,语义(也就是名称)非常不同。

关于rust - 有没有更简洁的方法来使用枚举,尤其是当它只有原始类型时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49704931/

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