Каждому, кто пишет на Rust рано или поздно приходится столкнуться с концепциями владения, Borrow checker-ом, с разницей в типах данных и их местонахождением в памяти. Эта статья именно об этом. Начнем с этих принципов. Если по простому - когда вы объявили переменную и записали в нее какие либо данные - она становится их владельцем. Если вы присваиваете ее значение другой переменной - то последняя становится владельцем. А предыдущая отбрасывается. Но тут следует обратить внимание на то, где хранятся данные. Если данные хранятся в куче (Heap) - то владение будет передано следующей переменной и сработает принцип описанный выше. Пример для понимания. Пример : let x : String = String::from("Hello"); let y = x // В данном случае владение будет передано y, а x будет отброшен. Если данные хранятся в Stack - то будет просто создана копия, вы по прежнему сможете взаимодействовать с исходником. 2. У каждого значения есть владелец. Тут на самом деле и объяснять особо нечего, когда создаете пере