So I just want to say that I am new to rust so sorry if this is a really stupid question
but here is my code but I have been looking around and some people said to add clone to the end that did not work I also set it to a variable then then the value to the variable, I have been trying for like 1 hour and I can not find out what the problem is
Your mistake is using the &str type in a place that requires ownership of the string. Change the vector to be of type Vec<String>. I also removed some unnecessary .to_string() calls.
use std::ops::Add;
fn main() {
let mut vec = Vec::new();
- vec.push("15");
- vec.push("+");
- vec.push("5");
+ vec.push("15".to_string());
+ vec.push("+".to_string());
+ vec.push("5".to_string());
let mut keep_going = true;
while keep_going {
println!("{:?}", vec);
let mut skip = false;
for y in 0..vec.len() {
if skip == false {
if vec[y] == "+" {
- vec[y - 1] = &vec[y - 1].to_string().parse::<i32>().unwrap().add(vec[y + 1].to_string().parse::<i32>().unwrap()).to_string();
+ vec[y - 1] = vec[y - 1].parse::<i32>().unwrap().add(vec[y + 1].parse::<i32>().unwrap()).to_string();
vec.remove(y);
vec.remove(y);
skip = true;
}
}
}
println!("{:?}", vec);
if vec.len() == 1 {
keep_going = false;
}
}
}