Code Fix

上級ジェネリック関数に値を渡すと所有権がムーブされ2回使えない › パターン3

ジェネリック関数に値を渡すと所有権がムーブされ2回使えない

ジェネリック型Tを所有権ごと受け取る関数に値を渡すと、Copyを実装していない型の場合は所有権がムーブされます。

 1  fn handle<T>(items: Vec<T>) -> usize {
 2      items.len()
 3  }
 4  fn main() {
 5      let bag = vec![1.0, 2.0];
 6      let a = handle(____________);
                             ^
 7      let b = handle(bag);
 8      println!("{} {}", a, b);
 9  }
error[E0382]: use of moved value: `bag`

空欄を埋めて実行を通す

広告
広告スロット(未設定)

ジェネリック関数に値を渡すと所有権がムーブされ2回使えない

同じ値をもう一度渡そうとするとE0382エラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)