Code Fix

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

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

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

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

空欄を埋めて実行を通す

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

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

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

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

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