appendではなく、pushを使う
fn main(){
let mut layer: Vec<String> = vec!["hoge".to_string(), "fuga".to_string()];
layer.push("aaa".to_string());
println!("{:?}", layer);
}
[“hoge”, “fuga”, “aaa”]
let mut layer: Vec<String> = vec!["hoge".to_string(), "fuga".to_string()];
layer.push("aaa".to_string());
println!("{:?}", layer[layer.len() - 1]);
“aaa”
これを応用して
#[derive(Debug, Clone)]
struct Tree {
leaves: Vec<String>,
layer: Vec<String>,
root: String,
}
impl Tree {
fn build_layer(&mut self) {
let new_layer: Vec<String> = Vec::new();
if self.layer.len() % 2 == 1 {
self.layer.push(self.layer[self.layer.len() - 1].clone());
}
}
}
appendだと上手くいきませんね。