小编Fra*_*em.的帖子

如何修复这两个for循环以允许修改向量内容?

我试图在使用Vec<f64>Vec内部制作的矩阵上做一个循环,然后逐个改变它的元素.

我似乎无法使其发挥作用; 我对语法仍然太困惑了......

extern crate rand;

use std::ptr;
use std::mem;

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let mut v: Vec<Vec<f64>> = Vec::new();
    v.push(vec![0f64; 35]);
    v.push(vec![0f64; 35]);
    v.push(vec![0f64; 35]);
    v.push(vec![0f64; 35]);

    let len = v.len();
    for &el in &v {
        for q in &mut el {
            q = rng.gen::<f64>();
            println!("{}", q);
        }
        println!("{:?}", el);
    }
    println!("float: {}", rng.gen::<f64>());
    //println!("vec: {:?}, len: {}",v,len);
}
Run Code Online (Sandbox Code Playgroud)

编译器说:

error[E0308]: mismatched types
  --> src/main.rs:19:17
   |
19 |             q = rng.gen::<f64>(); …
Run Code Online (Sandbox Code Playgroud)

for-loop mutable rust borrowing

2
推荐指数
1
解决办法
116
查看次数

标签 统计

borrowing ×1

for-loop ×1

mutable ×1

rust ×1