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

Атрибут #[inline]

Атрибут #[inline] является подсказкой компилятору о том, что функцию желательно встроить непосредственно в место вызова. Это может уменьшить накладные расходы на вызов функции и открыть дополнительные возможности для оптимизации. Атрибут применяется к функциям и методам перед их объявлением. Параметров атрибут не принимает.

Синтаксис

#[inline] fn function_name() { // тело функции }

Пример

Давайте объявим простую функцию с атрибутом #[inline] и вызовем её:

#[inline] fn add(a: i32, b: i32) -> i32 { a + b } fn main() { let res = add(2, 3); println!("{}", res); }

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

5

Пример

Давайте применим атрибут #[inline] к методу структуры:

struct Point { x: i32, y: i32, } impl Point { #[inline] fn sum(&self) -> i32 { self.x + self.y } } fn main() { let p = Point { x: 3, y: 4 }; let res = p.sum(); println!("{}", res); }

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

7

Пример

Давайте используем атрибут #[inline(always)], который является более строгой формой подсказки:

#[inline(always)] fn square(n: i32) -> i32 { n * n } fn main() { let res = square(5); println!("{}", res); }

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

25

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

  • ключевое слово fn,
    которое используется для объявления функций
  • атрибут allow,
    который отключает определённые предупреждения компилятора
  • атрибут cfg,
    который включает или исключает код при компиляции
  • атрибут derive,
    который автоматически реализует трейты для типов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить