Инвентаризация владения #1
«Инвентаризация владения» — это серия вопросов, проверяющих ваше понимание владения в реальных сценариях. Эти сценарии вдохновлены распространёнными вопросами о Rust на StackOverflow. Вы можете использовать эти вопросы, чтобы проверить, насколько хорошо вы понимаете владение на данный момент.
Новая технология: веб-среда разработки
Эти вопросы будут касаться программ на Rust, которые используют функции, которые вы ещё не видели. Поэтому мы используем экспериментальную технологию, поддерживающую функции IDE в браузере. Среда разработки позволяет получать информацию о незнакомых функциях и типах. Например, попробуйте выполнить следующие действия в программе ниже:
- Наведите курсор мыши на
replace, чтобы увидеть его тип и описание. - Наведите курсор мыши на
s2, чтобы увидеть его выведенный тип.
/// Превращает строку в гораздо более захватывающую строку
fn make_exciting(s: &str) -> String {
let s2 = s.replace(".", "!");
let s3 = s2.replace("?", "‽");
s3
}
Несколько важных оговорок об этой экспериментальной технологии:
СОВМЕСТИМОСТЬ С ПЛАТФОРМАМИ: веб-среда разработки не работает на сенсорных экранах. Она была протестирована только в Google Chrome 109 и Firefox 107. Она может не работать в более старых версиях Safari.
ИСПОЛЬЗОВАНИЕ ПАМЯТИ: веб-среда разработки использует сборку WebAssembly rust-analyzer, которая может занимать значительный объём памяти. Каждый экземпляр среды, по-видимому, занимает около ~300 МБ. (Примечание: мы также получили некоторые сообщения об использовании >10 ГБ памяти.)
ПРОКРУТКА: веб-среда разработки «съест» ваш курсор, если он пересекается с редактором при прокрутке. Если у вас возникают проблемы с прокруткой страницы, попробуйте переместить курсор на самую правую полосу прокрутки.
ВРЕМЯ ЗАГРУЗКИ: среда может занимать до 15 секунд для инициализации новой программы. Она будет отображать «Загрузка…», пока вы взаимодействуете с кодом в редакторе.