Тип Slice в Rust
В языке программирования Rust существует тип Slice, представляющий часть набора элементов. Это может быть, к примеру, часть массива. Формальное определение slice выглядит следующим образом:
Чтобы извлечь набор элементов, применяют синтаксис последовательностей -- это оператор
Также слайс определяется в качестве ссылки, следовательно, он, по сути, не владеет полученным поднабором элементов, а всего лишь содержит ссылку на данный поднабор.
Давайте определим slice, представляющий часть массива:
В нашем примере выражение
После того как слайс инициализирован, мы можем обращаться к его элементам. К примеру, как обращаемся в массиве по индексу:
Кроме того, у нас есть возможность перебрать элементы в цикле for.
Смотрим консольный вывод программы:
В том случае, если нужно взять элементы, начиная с нулевого индекса, индекс можно просто не указывать. Кроме того, вы можете не указывать и конечный индекс -- тогда получится взять элементы до самого последнего. Следовательно, есть возможность применять такие комбинации:
Еще посредством слайса вы сможете менять элементы поднабора (и, соответственно, начального набора). В данной ситуации slice надо определить как изменяемую ссылку с оператором &mut:
String slice
Точно таким же образом вы сможете получить поднабор и из прочих наборов элементов, к примеру, из строки, то есть из типа String:
Важно отметить, что для представления строкового слайса в языке программирования Rust существует специальный тип -- &str. То есть можно написать так:
В тот момент, когда обычной строке присваивалась переменная hello, по факту эта переменная представляла строковый слайс либо тип &str.
По материалам https://metanit.com/rust/.