Явная копия вектора в Rust
Вектор при обычной записи во вторую переменную
переходит целиком, и первое имя отключается.
Если нужны два независимых списка с одинаковым
содержимым, данные копируют явной командой
clone. Тогда обе переменные остаются
живыми и не мешают друг другу.
Создадим вектор и получим вторую копию списка:
let a = vec![1, 2];
let b = a.clone();
println!("{}", a[0]);
println!("{}", b[1]);
На экране 1 и 2. Изменение
одного списка не затрагивает другой, потому
это два отдельных владельца. Для чисел
такая команда не нужна: там срабатывает
обычное копирование при записи.
let nums = vec![3, 3];
let twin = nums.clone();
println!("{}", nums.len());
println!("{}", twin.len());
Дан следующий код:
let src = vec![8, 9];
let dst = src;
Переделайте программу так, чтобы после записи работали оба имени, и выведите сумму элементов из каждого списка.
Дан следующий код:
let a = vec![2, 4, 6];
Получите вторую переменную с тем же
содержимым, оставьте a рабочей
и выведите длину обоих списков.
Скажите, нужна ли явная копия, если
во вторую переменную записывают целое
число 15.