Как стать автором
Обновить

Комментарии 5

Спасибо за статью. Небольшое замечание по тексту:

  • Про Box описание идет с небольшой вариацией два раза в разных секциях. Может лучше их описания объединить?

Думаю, в разделе про unsafe стоит упомянуть, что этот блок дает доступ к 5 конкретным действиям и не выключает полностью проверки Rust
https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#unsafe-superpowers

To switch to unsafe Rust, use the unsafe keyword and then start a new block that holds the unsafe code. You can take five actions in unsafe Rust that you can’t in safe Rust, which we call unsafe superpowers. Those superpowers include the ability to:

  • Dereference a raw pointer

  • Call an unsafe function or method

  • Access or modify a mutable static variable

  • Implement an unsafe trait

  • Access fields of unions

It’s important to understand that unsafe doesn’t turn off the borrow checker or disable any other of Rust’s safety checks: if you use a reference in unsafe code, it will still be checked. The unsafe keyword only gives you access to these five features that are then not checked by the compiler for memory safety. You’ll still get some degree of safety inside of an unsafe block.

благодарю! Добавил в статью

Хотелось бы увидеть какой-нибудь практический пример.

Например, объект ‘магазин', который владеет учётными записями покупателей списками категорий и товаров. Покупатель владеет несколькими корзинами, которые ссылаются на товары. Товары ссылаются на категории, а категории хранят списки ссылок на товары. Есть групповые товары соединяющие несколько товаров в один.

Как эти структуры данных выражаются в виде умных ссылок раста. Как lifetimes и borrow checker предохраняют от случайного шарения корзин между покупателями, включения группового товара в самого себя, случайного включения одной и той же категории два раза в список категорий магазина и других нарушений логической структуры модели.

Как в Расте предлагается обрабатывать эту структуру данных многопоточно?

Что такое "сборщика мусора традиционного инструмента"?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий