2022-09-11から1日間の記事一覧

関数からの戻り値のオーバーヘッドが気になったので調べてみた

モチベ Rust では以下のようなコードはコンパイルでエラーになります。 fn func1() -> &'static String { &String::from("test") } fn main() { println!("{}", func1()); } ↓コンパイル結果 error[E0515]: cannot return reference to temporary value --> …

ベクタ型内の要素をループ内で借用してループの外で使う場合はベクタ変数を借用してループを回そう

今回のソースコード struct A { val: i32, } fn main() { let mut a_list: Vec<A> = vec![]; for i in 1..10 { a_list.push(A { val: i }); } let mut inner_elem = &A { val: 0 }; for a in a_list { match a.val { 3 => inner_elem = &a, _ => {} } } println</a>…