← Назад
Keyword | Описание |
---|---|
concat_bytes Experimental |
Объединяет литералы в байтовый фрагмент. |
concat_idents Experimental |
Объединяет идентификаторы в один идентификатор. |
const_format_args Experimental |
То же, что format_args , но может использоваться в некоторых контекстах const. |
format_args_nl Experimental |
То же, что format_args , но добавляет новую строку в конце. |
log_syntax Experimental |
Выводит переданные токены в стандартный вывод. |
trace_macros Experimental |
Включает или отключает функциональность трассировки, используемую для отладки других макросов. |
assert | Утверждает, что логическое выражение находится true во время выполнения. |
assert_eq | Утверждает, что два выражения равны друг другу (используя PartialEq ). |
assert_ne | Утверждает, что два выражения не равны друг другу (используя PartialEq ). |
cfg | Вычисляет логические комбинации флагов конфигурации во время компиляции. |
column | Расширяется до номера столбца, в котором оно было вызвано. |
compile_error | Вызывает сбой компиляции с указанным сообщением об ошибке при обнаружении. |
concat | Объединяет литералы в статический фрагмент строки. |
dbg | Выводит и возвращает значение заданного выражения для быстрой и грязной отладки. |
debug_assert | Утверждает, что логическое выражение находится true во время выполнения. |
debug_assert_eq | Утверждает, что два выражения равны друг другу. |
debug_assert_ne | Утверждает, что два выражения не равны друг другу. |
env | Проверяет переменную среды во время компиляции. |
eprint | Выводит стандартную ошибку. |
eprintln | Выводит стандартную ошибку с новой строкой. |
file | Расширяется до имени файла, в котором оно было вызвано. |
format_args | Создает параметры для других макросов форматирования строк. |
include | Анализирует файл как выражение или элемент в соответствии с контекстом. |
include_bytes | Включает файл в качестве ссылки на массив байтов. |
include_str | Включает файл в кодировке UTF-8 в виде строки. |
is_x86_feature_detected x86 or x86-64 |
Макрос для проверки во время выполнения, доступна ли функция ЦП на платформах x86/x86-64. |
line | Расширяется до номера строки, в которой оно было вызвано. |
matches | Возвращает, соответствует ли данное выражение какому-либо из заданных шаблонов. |
module_path | Расширяется до строки, представляющей текущий путь к модулю. |
option_env | Необязательно проверяет переменную среды во время компиляции. |
panic | Вызывает панику в текущем потоке. |
Печатает на стандартный вывод. | |
println | Печатает на стандартный вывод с новой строкой. |
stringify | Упорядочивает его аргументы. |
thread_local | Объявите новый ключ локального хранилища потока типа of type std::thread::LocalKey . |
todo | Указывает на незаконченный код. |
try Deprecated |
Разворачивает результат или распространяет его ошибку. |
unimplemented | Указывает на невыполненный код, вызывая панику сообщением “не реализовано”. |
unreachable | Указывает на недоступный код. |
vec | Создает Vec , содержащий аргументы. |
write | Записывает форматированные данные в буфер. |
writeln | Записывает форматированные данные в буфер с добавлением новой строки. |
macro_rules! five_times {
($x:expr) => (5 * $x);
}
fn main() {
assert_eq!(25, five_times!(2 + 3));
}
trait Sqr {
fn sqr(self) -> Self;
}
macro_rules! impl_sqr {
($t:ty) => (
impl Sqr for $t {
fn sqr(self) -> Self {
self * self
}
}
);
}
impl_sqr!(f32);
impl_sqr!(f64);
fn main() {
let x: f32 = 3.0;
let y: f64 = 4.0;
println!("{}, {}", x.sqr(), y.sqr());
}
fn add(a: i32, b: i32) -> i32 {
a + b
}
macro_rules! add {
($a: expr) => {
add($a, 2)
};
() => {
add(1, 2)
};
}
assert_eq!(add!(), 3);
assert_eq!(add!(4), 6);
← Назад