Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Типы указателей на функции

Типы указателей на функции, записываемые с использованием ключевого слова fn, ссылаются на функцию, чья идентичность не обязательно известна во время компиляции.

Пример, где Binop определен как тип указателя на функцию:

#![allow(unused)]
fn main() {
fn add(x: i32, y: i32) -> i32 {
    x + y
}

let mut x = add(5,7);

type Binop = fn(i32, i32) -> i32;
let bo: Binop = add;
x = bo(5,7);
}

Указатели на функции могут быть созданы через приведение как из функциональных элементов, так и из незахватывающих, не-асинхронных замыканий.

Квалификатор unsafe указывает, что значение типа является небезопасной функцией, а квалификатор extern указывает, что это внешняя функция.

Чтобы функция была вариадической, ее ABI extern должен быть одним из перечисленных в items.extern.variadic.conventions.

Атрибуты на параметрах указателей на функции

Атрибуты на параметрах указателей на функции следуют тем же правилам и ограничениям, что и обычные параметры функции.