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

Макрос file!

Макрос file возвращает строковый литерал, содержащий имя исходного файла, в котором был вызван этот макрос. Путь к файлу указывается относительно корня текущего пакета (крейта). Макрос не принимает никаких параметров и раскрывается на этапе компиляции, поэтому результат известен уже во время сборки программы.

Этот макрос часто используется для отладки, логирования и создания информативных сообщений об ошибках, когда важно знать, в каком именно файле произошло событие.

Синтаксис

file!()

Пример

Давайте выведем имя текущего файла с помощью макроса file:

fn main() { let res = file!(); println!("{}", res); }

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

"src/main.rs"

Пример

Давайте используем макрос file вместе с макросом line для создания информативного сообщения об ошибке:

fn main() { let res = format!("error in {} at line {}", file!(), line!()); println!("{}", res); }

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

"error in src/main.rs at line 3"

Пример

Давайте проверим, что макрос file возвращает значение типа &'static str:

fn main() { let res: &'static str = file!(); println!("{}", res); }

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

"src/main.rs"

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

  • макрос line!,
    который возвращает номер текущей строки
  • макрос column!,
    который возвращает номер текущей колонки
  • макрос module_path!,
    который возвращает путь текущего модуля
  • макрос macro_rules!,
    который позволяет создавать собственные макросы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить