Задачи на ownership в Rust. Часть 1
Создайте переменную String и передайте её в функцию — объясните move.
Сделайте функцию, принимающую String и возвращающую её длину.
Дан следующий код:
let s1 = String::from("hello");
let s2 = s1;
Попробуйте использовать s1 после move и объясните ошибку.
Используйте clone() для копирования строки.
Сделайте функцию, которая забирает ownership вектора и возвращает его сумму.
Объясните разницу между Copy и Clone на примере i32 и String.
Дан вектор:
let v = vec![1, 2, 3];
Передайте вектор в функцию и верните его обратно.
Сделайте функцию take_ownership(s: String) и вызовите её.
Используйте drop явно (conceptually) — когда память освобождается?
Сделайте swap двух String через ownership.