РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
210 of 1245 menu

Метод to_str

Метод to_str пытается преобразовать значение типа OsStr в обычный строковый срез &str. Он проверяет, является ли содержимое валидной последовательностью UTF-8. Если данные корректны, метод возвращает Some(&str), а в случае ошибки - None. Метод не принимает параметров и возвращает значение типа Option<&str>.

Синтаксис

os_str.to_str()

Пример

Давайте создадим OsStr из валидной строки и попробуем преобразовать её обратно в str:

use std::ffi::OsStr; fn main() { let os_str = OsStr::new("abcde"); let res = os_str.to_str(); println!("{:?}", res); }

Результат выполнения кода:

Some("abcde")

Пример

Теперь рассмотрим ситуацию, когда OsStr содержит невалидные для UTF-8 данные. Для этого создадим его из байтового вектора:

use std::ffi::OsStr; use std::os::unix::ffi::OsStrExt; fn main() { let bytes = vec![0x66, 0x6f, 0x80, 0x6f]; let os_str = OsStr::from_bytes(&bytes); let res = os_str.to_str(); println!("{:?}", res); }

Результат выполнения кода:

None

Смотрите также

  • метод to_string_lossy,
    который преобразует OsStr в строку с заменой невалидных символов
  • метод OsStr,
    который представляет собой срез операционной системы
  • метод from_utf8,
    который создает String из байтового вектора с проверкой UTF-8
  • метод from_utf8_lossy,
    который создает строку из байтов, заменяя ошибки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить