作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Rust 中使用枚举来实现多态性。我需要一个可以包含整数或浮点值的向量:
enum Value {
Float(f32),
Int(i32),
}
let vec = Vec::<Value>::new();
vec.push(Value::Int(0));
vec.push(Value::Float(1.0));
有没有更简洁的方法来做到这一点,尤其是当您只使用原始类型时?
最佳答案
不,没有。
减少代码量有技巧:
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/
我是一名优秀的程序员,十分优秀!