pub fn collect_prime_factors(number: i32) -> Vec<i32> {
let mut prime_factors = Vec::new();
for i in 2..number {
if number % i == 0 {
collect_prime_factors(number/2);
prime_factors.push(i);
prime_factors
}
}
}
Fehler:Falscher Vektor Rückgabetyp für Rust Funktion
lib.rs:14:9: 14:22 error: mismatched types:
expected `()`,
found `collections::vec::Vec<i32>`
(expected(),
found struct `collections::vec::Vec`) [E0308]
lib.rs:14 prime_factors
Ich habe nicht das Problem hier. Ich erkläre eine Vec<i32>
als Rückgabetyp. Warum erwartet man diese leeren Zahnspangen?
Warum funktioniert das nur, wenn ich es innerhalb einer Schleife verwende? Wenn ich die Schleife entferne und nur return prime_factors;
funktioniert alles gut.
Wie lautet der Aufruf von 'collect_prime_factors (number/2)'? Er berechnet einen neuen Vektor und wirft ihn weg. –
semantisch falsch Ich habe es erst nach Rost erkannt, sagte mir diese neuen Ausgaben. Bitte ignoriere – xetra11