Rust предоставляет различные структуры данных, которые позволяют хранить и организовывать информацию в программе. В этой статье мы рассмотрим строки, векторы, хеш-карты и кортежи в Rust.
Строки
Строки в Rust представлены типом String, который предоставляет гибкость для работы с текстовыми данными. Строки могут изменяться и дополняться динамически.
В примере выше, мы создаем пустую строку empty_string и строку greeting с помощью макроса. Затем мы объявляем изменяемую строку full_greeting и добавляем в нее текст с помощью метода push_str().
Векторы
Векторы в Rust представлены типом Vec<T>, который представляет динамический массив элементов одного типа.
В примере выше, мы создаем пустой вектор empty_vector с явным указанием типа элементов. Затем создаем вектор numbers с помощью макроса vec! и вектор fruits пустой, к которому последовательно добавляем фрукты с помощью метода push(). Обратите внимание, что векторы индексируются с 0, так же как массивы.
Хеш-карты
Хеш-карты в Rust представлены типом HashMap<K, V>, где K - тип ключей, а V - тип значений.
В примере выше, мы создаем пустую хеш-карту empty_map с указанием типов ключей и значений. Затем создаем хеш-карту book_reviews, добавляем пары "название книги - отзыв" и выводим содержимое хеш-карты. Мы также показываем, как получить значение по ключу с помощью метода get() и удалять элементы с помощью метода remove().
Кортежи
Кортежи в Rust представляют собой неизменяемые последовательности значений различных типов.
В примере выше, мы создаем кортеж person, содержащий имя и возраст человека. К элементам кортежа можно обращаться по индексу, начиная с 0.
Задание:
- Создайте вектор целых чисел и наполните его значениями.
- Используя хеш-карту, сохраните частоту встречаемости каждого числа в векторе. Ключами в хеш-карте должны быть уникальные числа из вектора, а значениями - количество их повторений.
- Выведите содержимое хеш-карты на экран в формате "Число: количество".
Подсказка: Для выполнения задания, вы можете использовать методы вектора, такие как iter(), for_each(), а также методы хеш-карты, такие как entry(), and_modify() и or_insert().