Ich lerne Rust, habe die Rust-Homepage gelesen und probiere kleine Beispielprogramme aus. Hier ist Code, der fehlschlägt:Nicht übereinstimmende Typen bei der Rückgabe des Ergebnisses von zwei Generika
use std::ops::Add;
pub struct Complex<T> {
pub re: T,
pub im: T,
}
impl <T: Add> Add<Complex<T>> for Complex<T> {
type Output = Complex<T>;
fn add(self, other: Complex<T>) -> Complex<T> {
Complex {re: self.re + other.re, im: self.im + other.im}
}
}
Hier wird die Fehlermeldung:
src/lib.rs:11:3: 11:59 error: mismatched types:
expected `Complex<T>`,
found `Complex<<T as core::ops::Add>::Output>`
(expected type parameter,
found associated type) [E0308]
src/lib.rs:11 Complex {re: self.re + other.re, im: self.im + other.im}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ich verstehe nicht, warum es zu kompilieren schlägt fehl.
Vielen Dank für Ihre Antwort. Das hilft. – Thorum357