Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Инвентаризация владения #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 секунд для инициализации новой программы. Она будет отображать «Загрузка…», пока вы взаимодействуете с кодом в редакторе.

Вопросы