Обобщенная функция в 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.