main関数で存在する変数を別の関数内で書き換え
どうやってやるのかわかんなかった
教科書の最初の1ページにかかれてそうではあるが。
結論からいうと以下
fn add(a:&mut usize,b:usize){
*a = *a + b
}
fn main() {
let mut a = 2;
add(&mut a,2);
println!("{:?}",a)
}
可変参照として渡してあげればよいようだ。
ちなみに引数のところのaは mut a として挙げても普通に動く。
一応ベクタの中身書き換えのやり方も。これで3,4,5のベクタが出てくる。
fn add(mut a:&mut Vec<usize>,b:usize){
for i in a{
*i = *i + b;
}
}
fn main() {
let mut a = vec![1,2,3];
add(&mut a,2);
println!("{:?}",a)
}
ここまでやって書きたかったのは変数として渡さないグローバル的なやり方だったことを思い出した。
まあいいか