作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个代码生成器,它生成对返回Vec<f64>
的函数的调用。我需要将这些值分配给一组变量,最好的方法似乎是这些变量的元组。像这样的东西:
let array: &[f64] = &my_function(3);
let (a, b, c): (f64, f64, f64) = unsafe { std::mem::transmute(*array) };
最佳答案
期间,您无法执行此操作; tuples do not have a guaranteed memory layout,因此您无法从可能匹配或可能不匹配的内容进行转换。
我会进行正常的模式匹配:
fn main() {
let values = my_function(3);
dbg!(&values);
let (a, b, c) = match &*values {
[a, b, c] => (a, b, c),
_ => panic!(),
};
dbg!(a, b, c);
}
fn my_function(count: usize) -> Vec<f64> {
vec![3.14_0f64; count]
}
关于arrays - 如何将f64数组重新解释为f64元素的元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60582097/
我是一名优秀的程序员,十分优秀!