Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpGnFn 18 of 288 menu
◀ ▶

Обобщенная функция в Rust

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

Запишем функцию, которая отдает значение без изменений:

fn identity<T>(value: T) -> T { value } fn main() { let n = identity(4); let text = identity(String::from("go")); println!("{} {}", n, text); }

Дано число:

let score: i32 = 10;

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

Дана переменная:

let label = String::from("ok");

Используйте ту же идею для строки: верните label через общую функцию и выведите текст.

Скажите, зачем в сигнатуре оставляют букву типа вместо конкретного i32 или String.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить