Я пытаюсь написать функцию, которая возвращает минимальное число из массива:Что не так с моей функцией min?
Определение функции:
pub fn min(input_array: &[i32]) -> &i32 {
let x = input_array.iter().min().unwrap();
x
}
Тест:
fn test_min() {
let input_array = [1, 2, 3, 4];
assert_eq!(1, functional::min(&input_array));
}
Но когда я запускаю его я получаю сообщение об ошибке :
<std macros>:5:8: 5:33 error: the trait `core::cmp::PartialEq<&i32>` is not implemented for the type `_` [E0277]
<std macros>:5 if ! (* left_val == * right_val) {
^~~~~~~~~~~~~~~~~~~~~~~~~
src/functional.rs:104:5: 104:50 note: in this expansion of assert_eq! (defined in <std macros>)
<std macros>:5:8: 5:33 help: run `rustc --explain E0277` to see a detailed explanation
error: aborting due to previous error
Could not compile `gettingrusty`.
Проверьте тип 'x' с' пусть _:() = х; ', скорее всего, его тип' & i32', и я уверен, что вы можете взять его отсюда. –
Вы уверены, что это ошибка? 'min' возвращает' Option '... Я предполагаю, что вы разворачиваете это и не включаете его в свой фрагмент? –
Извините, добавил недостающие разделы. –