Мне было интересно, можно ли возвращать разные типы в зависимости от условий в функции: Этот код будет работать, если вы удалите '|| bool 'и' if/else '.Может ли функция возвращать разные типы в зависимости от условных операторов в функции?
Заранее спасибо.
fn main() {
let vector: Vec<i32> = vec![0, 2, 5, 8, 9];
let targetL i32 = 3;
let found_item = linear_search(vector, target);
println!("{}", &found_item);
}
fn linear_search(vector: Vec<i32>, target: i32) -> i32 || bool {
let mut found: i32 = 0;
for item in vector {
if item == target {
found = item;
break
}
}
if found == 0 {
false
} else {
found
}
}
Благодарим вас обоих, в этом случае опция выглядит чище, но если я понимаю это правильно: с перечислением у вас есть больше опций – user3419211
@ user3419211 в вашем случае вы обязательно должны использовать 'Option'. Необработанное перечисление имеет больше опций (и может быть вложенным и т. Д.), Но «Option» находится в стандартной библиотеке, и он использует их точно в соответствии с вашим прецедентом. –