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だと上手くいきませんね。