Коллектив авторов - Rust на примерах
Название: | Rust на примерах | |
Автор: | Коллектив авторов | |
Жанр: | Другие языки и системы программирования, Учебники и самоучители по компьютеру, Любительские переводы, Программирование: прочее | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2011 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Rust на примерах"
https://doc.rust-lang.ru/stable/rust-by-example/
Rust - современный язык программирования, нацеленный на безопасность, скорость и параллелизм. Данные цели выполняются при условии безопасной работы с памятью без использования сборщика мусора.
Rust на примерах - это набор исполняемых примеров, которые иллюстрируют различные концепции языка Rust, а так же возможности его стандартной библиотеки. Для того, чтобы подчеркнуть ещё больше из этих примеров, не забудьте установить Rust на своём компьютере и проверить официальную документацию. Если вы ранее не сталкивались с языком программирования Rust, то советую вам для начала ознакомиться с русскоязычной книгой по Rust. Кроме этого можно посмотреть исходный код этого сайта или оригинала.
Читаем онлайн "Rust на примерах". [Страница - 77]
Небезопасные операции
В качестве введения в этот раздел процитируем официальную документацию, "нужно стараться минимизировать количество небезопасного кода в кодовой базе." Имея это в виду, давайте начнём! Небезопасные аннотации в Rust используются для обхода блокировок защиты, устанавливаемых компилятором; в частности, существует четыре основных варианта использования небезопасного кода:• разыменование сырых указателей
• вызов функций или методов, которые являются unsafe (включая вызов функции через FFI см. предыдущую главу книги)
• доступ или изменение статических изменяемых переменных
• реализация небезопасных типажей
Сырые указатели
Сырые указатели * и ссылки &T имеют схожую функциональность, но ссылки всегда безопасны, потому что они гарантированно указывают на достоверные данные за счёт механизма проверки заимствований. Разыменование же сырого указателя можно выполнить только через небезопасный блок.fn main() {
let raw_p: *const u32 = &10;
unsafe {
assert!(*raw_p == 10);
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Вызов небезопасных функций
Некоторые функции могут быть объявлены как unsafe, то есть за корректность этого кода несёт ответственность программист, написавший его, вместо компилятора. Пример - это метод std::slice::from_raw_parts, который создаст срез из указателя на первый элемент и длины.use std::slice;
fn main() {
let some_vector = vec![1, 2, 3, 4];
let pointer = some_vector.as_ptr();
let length = some_vector.len();
unsafe {
let my_slice: &[u32] = slice::from_raw_parts(pointer, length);
assert_eq!(some_vector.as_slice(), my_slice);
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Для slice::from_raw_parts одно из предположений, которое должно быть поддержано, что переданный указатель указывает на допустимую память и что в памяти лежит значение правильного типа. Если эти инварианты не поддерживаются, то поведение программы не определено, и неизвестно, что произойдёт.
Совместимость
Rust быстро развивается и из-за этого могут возникнуть определённые проблемы совместимости, не смотря на усилия по обеспечению обратной совместимости везде, где это возможно.• Сырые идентификаторы
Сырые идентификаторы
В Rust, как и во многих других языках программирования, существует концепция "ключевых слов". Эти идентификаторы что-то значат для языка и из-за этого вы не можете использовать их в качестве названия переменных, именах функций и других местах. Сырые идентификаторы позволяют использовать ключевые слова там, где они обычно не разрешены. Это особенно полезно, когда Rust вводит новые ключевые слова и библиотеки, использующие старую редакцию Rust, имеют переменные или функции с таким же именем, как и ключевое слово, введённое в новой редакции.Например, рассмотрим крейт foo, скомпилированный с 2015 редакцией Rust, и который экспортирует функцию с именем try. Это ключевое слово зарезервировано для новой функциональности в 2018 редакции, из-за чего без сырых идентификаторов мы не можем назвать так функцию.
extern crate foo;
fn main() {
foo::try();
}
Вы получите ошибку:
error: expected identifier, found keyword `try`
--> src/main.rs:4:4
|
4 | foo::try();
| ^^^ expected identifier, found keyword
Вы можете записать это при помощи сырого идентификатора:
extern crate foo;
fn main() {
foo::r#try();
}
Meta
Некоторые темы не совсем соответствуют тому, как вы программируете, но предоставляют вам инструменты или инфраструктуру, которые делают лучше для всех. Эти темы включают:• Документацию: генерирование пользовательской документации с использованием rustdoc.
• Playpen: интегрирование Rust Playpen (также известного как Rust --">Книги схожие с «Rust на примерах» по жанру, серии, автору или названию:
Коллектив авторов - Основы ведения боевых действий подразделений, частей и соединений иностранных армий (на примерах... Жанр: Военное дело Год издания: 2011 |
Коллектив авторов - Перо и маузер Жанр: Военная проза Год издания: 1968 |
Коллектив авторов - История этических учений Жанр: Учебники и пособия: прочее Год издания: 2003 |
Коллектив авторов - "Зона с нами" (сборник) (СИ) Жанр: Боевая фантастика Год издания: 2016 |
Другие книги автора « Коллектив авторов»:
Коллектив авторов - Химия Жанр: Детская образовательная литература Год издания: 2006 Серия: Большая серия знаний |
Коллектив авторов, И. Л. Архипов - П. А. Столыпин Жанр: Биографии и Мемуары Год издания: 2017 Серия: Государственные деятели России глазами современников |
Коллектив авторов - Математика в Excel Жанр: Офисные приложения Год издания: 2019 |
Коллектив авторов - Помпеи: сгинуший город Жанр: Научно-популярная и научно-познавательная литература Год издания: 1997 Серия: Энциклопедия Исчезнувшие цивилизации |